




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理中的流程优化案例研究试题及答案
- 行政管理的法治思维试题及答案
- 行政管理中的决策支持系统试题及答案
- 行政管理议题研究试题及答案
- 2025正规的合租房屋租赁合同样本
- 2025快餐店临时工雇佣合同
- 建筑工程现场安全管理的新方法试题及答案
- 行政管理自考实务问题试题及答案
- 2025设备产品买卖合同模板
- 2025企业茶叶收购管理经营承包合同模板
- 2024年计算机考试-ISTQB认证考试近5年真题附答案
- 设备、材料供应方案
- 2025届高考英语:阅读理解及完型常考重点高频(带音标)500词素材
- 环保督察课件教学课件
- 2024年秋季新外研版三年级上册英语课件 Appendices Mulan
- 《世界是普遍联系的》名师课件
- 2024年五年级英语下册 Module 8 Unit 2 I made a kite教案 外研版(三起)
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- DL∕T 1250-2013 气体绝缘金属封闭开关设备带电超声局部放电检测应用导则
- T-CSAE 176-2021 电动汽车电驱动总成噪声品质测试评价规范
- 《新能源汽车地下停放场所消防安全管理规范》编制说明
评论
0/150
提交评论