iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java中如何使用HttpClient调用接口
  • 864
分享到

java中如何使用HttpClient调用接口

java使用HttpClientHttpClient调用接口javaHttpClient 2022-11-13 18:11:13 864人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录java使用HttpClient调用接口HttpClient 提供的主要的功能直接言归正传了!!!!上代码java的HttpClient调用远程接口使用方法实例java使用Htt

java使用HttpClient调用接口

HttpClient 提供的主要的功能

(1)实现了所有 HTTP 的方法(GET,POST,PUT,DELETE 等)

(2)支持自动转向

(3)支持 https 协议

(4)支持代理服务器

直接言归正传了!!!!上代码

 public static String sendPutFORM(String url,  Map<String,String> map, String encoding) throws ParseException, IOException {
        String body = "";
        // 打印了一下我推送的JSON数据
        log.info("我推送的json数据:" + map);
        log.info("我推送的url:" + url);
        CloseableHttpResponse response = null;
        ///获得Http客户端
        CloseableHttpClient client = HttpClients.createDefault();
        List<NameValuePair> parameters = new ArrayList<NameValuePair>();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println("key = " + entry.geTKEy() + ", value = " + entry.getValue());
            parameters.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
        }
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters);
		// 配置信息
		// 设置连接超时时间(单位毫秒)
		// 设置请求超时时间(单位毫秒)
		// Socket读写超时时间(单位毫秒)
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(50000).setConnectionRequestTimeout(50000)
                .setSocketTimeout(50000).build();
        // 向指定资源位置上传内容// 创建Post请求
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(requestConfig);
        httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
        httpPost.setEntity(formEntity);
        try {
            response = client.execute(httpPost);
            // 通过response中的getEntity()方法获取返回值
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                body = EntityUtils.toString(entity, encoding);
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        } finally {
            httpPost.abort();
            if (response != null) {
                EntityUtils.consumeQuietly(response.getEntity());
            }
        }
        log.info("body:" + body);
        return body;
    }

代码其实就是这么多,还有好多形式。大家可以参考写一下。

java的HttpClient调用远程接口

httpClient比jdk自带的URLConection更加易用和方便,这里介绍一下使用httpClient来调用远程接口。

首先导入相关的依赖包:

<!-- httpClient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.3</version>
        </dependency>

使用方法

1,创建HttpClient对象;

2,指定请求URL,并创建请求对象,如果是get请求则创建HttpGet对象,post则创建HttpPost对象;

3,如果请求带有参数,对于get请求可直接在URL中加上参数请求,或者使用setParam(HetpParams params)方法设置参数,对于HttpPost请求,可使用setParam(HetpParams params)方法或者调用setEntity(HttpEntity entity)方法设置参数;

4,调用httpClient的execute(HttpUriRequest request)执行请求,返回结果是一个response对象;

5,通过response的getHeaders(String name)或getAllHeaders()可获得请求头部信息,getEntity()方法获取HttpEntity对象,该对象包装了服务器的响应内容。

实例

我使用了property文件来保存不同api对应的链接,也可以除去properties文件的读取代码,直接将变量 API换成所需URL

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.util.Map;
import java.util.Properties;
 
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
 
public class APIUtil {
 
	
	public static String API(String APIName, Map<String, Object> params) {
		 String content = "";
		 //请求结果  
                CloseableHttpResponse response = null;  
		//实例化httpclient  
                CloseableHttpClient httpclient = HttpClients.createDefault();  
       
            try {
        	 //读取配置文件的URL
                Properties properties = new Properties();
                URL fileURL = APIUtil.class.getClassLoader().getResource("api.properties");
		properties.load(new FileInputStream(new File(fileURL.getFile())));
		String API = properties.getProperty(APIName);
	        //构造url请求
	        StringBuilder url = new StringBuilder(API);
	        if(params!=null && params.size()>0) {
	        	url.append("?");
	        	for(Map.Entry<String, Object> entry : params.entrySet()) {
	            	url.append(entry.getKey()+"="+entry.getValue()+"&");
	            }
	        	url.substring(0, url.length()-1);
	        }
	        //实例化get方法  
	        HttpGet httpget = new HttpGet(url.toString()); 
	        //执行get请求
		response = httpclient.execute(httpget);
		if(response.getStatusLine().getStatusCode()==200) {
			content = EntityUtils.toString(response.getEntity(),"utf-8");
		}
	} catch (IOException e) {
		e.printStackTrace();
	}
        return content;
    }	
}

执行完毕后返回API提供的数据。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java中如何使用HttpClient调用接口

本文链接: https://www.lsjlt.com/news/170207.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中如何使用HttpClient调用接口
    目录java使用HttpClient调用接口HttpClient 提供的主要的功能直接言归正传了!!!!上代码java的HttpClient调用远程接口使用方法实例java使用Htt...
    99+
    2022-11-13
    java使用HttpClient HttpClient调用接口 java HttpClient
  • java怎么使用HttpClient调用接口
    这篇文章主要介绍“java怎么使用HttpClient调用接口”,在日常操作中,相信很多人在java怎么使用HttpClient调用接口问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么使用HttpC...
    99+
    2023-07-04
  • JAVA中的HTTPS接口怎么利用HttpClient进行调用
    JAVA中的HTTPS接口怎么利用HttpClient进行调用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为了避免需要证书,所以用一个类继承DefaultHttpClient...
    99+
    2023-05-31
    java httpclient https
  • 使用HttpClient调用接口的实例讲解
    一,编写返回对象public class HttpResult {// 响应的状态码private int code;// 响应的响应体private String body;get/set…}...
    99+
    2023-05-31
    httpclient 调用 接口
  • 如何在HTTP协议接口测试中使用HttpClient
    本篇文章为大家展示了如何在HTTP协议接口测试中使用HttpClient,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、GET请求: GET请求时,参数一般是写在链接上的,代码如下:public&...
    99+
    2023-05-31
    http httpclient
  • 在Java中如何使用接口调用Groovy方法
    小编给大家分享一下在Java中如何使用接口调用Groovy方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!定义Java接口包含在Java中需要调用的Groovy...
    99+
    2023-06-03
  • Java webservice接口如何调用
    要调用Java Web服务接口,可以按照以下步骤进行操作: 首先,确保你已经有一个Java Web服务接口的URL地址。 使用Ja...
    99+
    2023-10-23
    Java webservice
  • java如何调用post接口
    在Java中调用POST接口,可以使用以下几种方法:1. 使用Java原生的HttpURLConnection类发送POST请求:j...
    99+
    2023-10-21
    java
  • java如何调用restful接口
    Java可以使用HttpURLConnection或者HttpClient来调用RESTful接口。使用HttpURLConnect...
    99+
    2023-09-13
    java
  • java如何调用webservice接口
    在Java中调用Web服务接口,可以使用Java的SOAP客户端库、REST客户端库或者HTTP客户端库。1. 使用Java的SOA...
    99+
    2023-09-13
    java webservice
  • java如何调用tcp接口
    在Java中,可以使用Socket类来调用TCP接口。以下是一个使用Java Socket类调用TCP接口的示例代码:```java...
    99+
    2023-08-09
    java
  • java如何调用wsdl接口
    在Java中调用WSDL接口可以通过以下步骤实现: 使用wsimport命令生成客户端代码: 首先需要根据WSDL文件生成客户端代...
    99+
    2024-04-02
  • ASP.NET Core如何使用HttpClient调用WebService
    本文小编为大家详细介绍“ASP.NET Core如何使用HttpClient调用WebService”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core如何使用HttpClient调用WebServi...
    99+
    2023-06-29
  • java如何调用外部接口
    在Java中调用外部接口,需要先导入外部接口的包,然后通过接口名加上方法名的方式调用外部接口的方法。具体步骤如下: 在Java文...
    99+
    2023-10-23
    java
  • ASP.NETCore使用HttpClient调用WebService
    一、创建WebService 我们使用VS创建一个WebService,增加一个PostTest方法,方法代码如下 using System.Web.Services; names...
    99+
    2024-04-02
  • Java如何调用第三方接口
    这篇“Java如何调用第三方接口”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java如何调用第三方接口”文章吧。一、 通过...
    99+
    2023-07-02
  • 如何在Java中使用RESTful接口
    如何在Java中使用RESTful接口?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、什么是APIAPI (应用程序编程接口) 两种用法类似jar的使用:A软件将功能打包...
    99+
    2023-06-15
  • 如何在java中使用HttpClient处理错误
    如何在java中使用HttpClient处理错误?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可...
    99+
    2023-06-14
  • SpringBoot 如何使用RestTemplate来调用接口
    目录使用RestTemplate来调用接口1.新建一个配置类,配置RestTemplate的Bean2.多种传输和接收参数的方式2.1postForObject方法postForEn...
    99+
    2024-04-02
  • 如何在thinkphp5.1中写接口及接口调用
    在thinkphp5.1中如何写接口及如何调用接口 对于php不熟悉的人来说,解除thinkphp还是挺有难度的。 下面记录如何编写接口。 及如何对编写的接口进行调用。 1.首先在thinkphp中的application中的api/co...
    99+
    2023-09-01
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作