java中如何使用HttpClient调用接口_第1页
java中如何使用HttpClient调用接口_第2页
java中如何使用HttpClient调用接口_第3页
java中如何使用HttpClient调用接口_第4页
java中如何使用HttpClient调用接口_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

java使用HttpClient调用接口

HttpClient提供的主要的功能

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

(2)支持自动转向

(3)支持HTTPS协议

(4)支持代理服务器等

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

publicstaticStringsendPutForm(Stringurl,MapString,Stringmap,Stringencoding)throwsParseException,IOException{

Stringbody="";

//打印了一下我推送的json数据

("我推送的json数据:"+map);

("我推送的url:"+url);

CloseableHttpResponseresponse=null;

///获得Http客户端

CloseableHttpClientclient=HttpClients.createDefault();

ListNameValuePairparameters=newArrayListNameValuePair

for(Map.EntryString,Stringentry:map.entrySet()){

System.out.println("key="+entry.getKey()+",value="+entry.getValue());

parameters.add(newBasicNameValuePair(entry.getKey(),entry.getValue()));

UrlEncodedFormEntityformEntity=newUrlEncodedFormEntity(parameters);

//配置信息

//设置连接超时时间(单位毫秒)

//设置请求超时时间(单位毫秒)

//socket读写超时时间(单位毫秒)

RequestConfigrequestConfig=RequestConfig.custom()

.setConnectTimeout(50000).setConnectionRequestTimeout(50000)

.setSocketTimeout(50000).build();

//向指定资源位置上传内容//创建Post请求

HttpPosthttpPost=newHttpPost(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()方法获取返回值

HttpEntityentity=response.getEntity();

if(entity!=null){

body=EntityUtils.toString(entity,encoding);

}catch(Exceptione){

//TODO:handleexception

e.printStackTrace();

}finally{

httpPost.abort();

if(response!=null){

EntityUtils.consumeQuietly(response.getEntity());

("body:"+body);

returnbody;

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

java的HttpClient调用远程接口

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

首先导入相关的依赖包:

!--httpClient--

dependency

groupIdorg.apache.httpcomponents/groupId

artifactIdhttpclient/artifactId

version4.5.3/version

/dependency

使用方法

1,创建HttpClient对象;

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

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

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

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

实例

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

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.IOException;

import.URL;

importjava.util.Map;

importjava.util.Properties;

importorg.apache.http.client.methods.CloseableHttpResponse;

importorg.apache.http.client.methods.HttpGet;

importorg.apache.http.impl.client.CloseableHttpClient;

importorg.apache.http.impl.client.HttpClients;

importorg.apache.http.util.EntityUtils;

publicclassAPIUtil{

*返回API调用结果

*@paramAPIName接口在perties中的名称

*@paramparams访问api所需的参数及参数值

*@return此处返回的是JSON格式的数据

publicstaticStringAPI(StringAPIName,MapString,Objectparams){

Stringcontent="";

//请求结果

CloseableHttpResponseresponse=null;

//实例化httpclient

CloseableHttpClienthttpclient=HttpClients.createDefault();

try{

//读取配置文件的URL

Propertiesproperties=newProperties();

URLfileURL=APIUtil.class.getClassLoader().getResource("perties");

properties.load(newFileInputStream(newFile(fileURL.getFile())));

StringAPI=properties.getProperty(APIName);

//构造url请求

StringBuilderurl=newStringBuilder(API);

if(params!=nullparams.size()0){

url.append("");

for(Map.EntryString,Objectentry:params.entrySet()){

url.append(entry.getKey()+"="+entry.getValue()+"

url.substring(0,url.length()-1);

//实例化get方法

HttpGethttpget=newHttpGet(url.toString());

//执行get请求

response=httpclient.execute(httpget);

if(response.getStatusLine(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论