HttpClient常用的包有两个

org.apache.http.client以及org.apache.commons.httpclient

我常用的是org.apache.http.client。

HttpClient在4.3版本以后声明HttpClient的方法和以前略有区别,不再是直接声明new DefaultHttpClient() .

参考下文:

new DefaultHttpClient过时处理建议和HTTP调用后关闭流处理

HttpClient 4.5.2版本设置连接超时时间-CloseableHttpClient设置Timeout

JAVA发送HttpClient请求及接收请求结果过程

HttpClient使用详解

代码如下:

    public static void sendHttpAudit(OAApplicationModule am, String type,
String entityMappingId, String param) {
System.out.println(System.currentTimeMillis()); String oaRestfulServiceUrl = null;
// am.getOADBTransaction().getProfile("");
oaRestfulServiceUrl = "http://xxx.xxx.xxx.xxx:8090/api/Service/submitXXX"; // RequestConfig requestConfig =
// RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).setSocketTimeout(5000).build();
RequestConfig requestConfig =
RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).build();
CloseableHttpClient httpclient = null; CloseableHttpResponse h_response = null; try {
httpclient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();
// httpclient = HttpClientBuilder.create().build(); HttpPost postMethod = new HttpPost(oaRestfulServiceUrl);
// postMethod.setConfig(requestConfig);
postMethod.setHeader("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36");
postMethod.setHeader("Referer", oaRestfulServiceUrl);
List<NameValuePair> params = new ArrayList<NameValuePair>();
//200_ifaceCode 200表示为EBS系统调用RESTFUL服务。
params.add(new BasicNameValuePair("type", type));
params.add(new BasicNameValuePair("param", param));
//添加参数
postMethod.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
h_response = httpclient.execute(postMethod);
HttpEntity repEntity = h_response.getEntity(); int statusCode = h_response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK) {
postMethod.abort();
procProcessError(am, entityMappingId, String.valueOf(statusCode), EntityUtils.toString(repEntity, "UTF-8") );
throw new OAException("HttpClient,error status code :" +
statusCode);
}
String content = EntityUtils.toString(repEntity, "UTF-8");
System.out.println(content);
JSONObject json = JSON.parseObject(content);
String retCode = json.getString("returnCode");
String retMsg = json.getString("returnMsg");
procProcessError(am, entityMappingId, retCode, retMsg );
if (!"000000".equals(retCode)) {
System.out.println(" error " +retMsg );
throw new OAException("接口服务处理异常" +
json.getString("returnMsg"));
} else {
changeStatusInprocess(am, entityMappingId);
}
} catch (ConnectTimeoutException e) {
procProcessError(am, entityMappingId, "ConnectTimeoutException", e.getMessage() ); System.out.println(" ConnectTimeoutException " +
System.currentTimeMillis());
e.printStackTrace();
throw new OAException("接口服务处理异常 ConnectTimeoutException " +
e.getMessage());
} catch (SocketTimeoutException e) {
procProcessError(am, entityMappingId, "SocketTimeoutException", e.getMessage() );
System.out.println(" SocketTimeoutException " +
System.currentTimeMillis());
e.printStackTrace();
throw new OAException("接口服务处理异常 SocketTimeoutException " +
e.getMessage());
} catch (Exception e) {
procProcessError(am, entityMappingId, "Exception", e.getMessage() );
System.out.println("Exception " + System.currentTimeMillis());
e.printStackTrace();
throw new OAException("接口服务处理异常 Exception " + e.getMessage());
} finally {
if (h_response != null) {
try {
h_response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (httpclient != null) {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

org.apache.commons.httpclient参考如下

httpClient 超时时间设置(转)

java使用HttpClient的更多相关文章

  1. Java通过httpclient获取cookie模拟登录

    package Step1; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Htt ...

  2. Java中httpClient中三种超时设置

    本文章给大家介绍一下关于Java中httpClient中的三种超时设置小结 在Apache的HttpClient包中,有三个设置超时的地方: /* 从连接池中取连接的超时时间*/ ConnManage ...

  3. Java使用HttpClient上传文件

    Java可以使用HttpClient发送Http请求.上传文件等,非常的方便 Maven <dependency> <groupId>org.apache.httpcompon ...

  4. Java的HttpClient的实现

    HttpClient的概念就是模仿浏览器请求服务端内容,也可以做App和Server之间的链接. 这个是关于Java的HttpClient的简单实例,其实java本身也可以通过自己的net包去做,但是 ...

  5. java 通过httpclient调用https 的webapi

    java如何通过httpclient 调用采用https方式的webapi?如何验证证书.示例:https://devdata.osisoft.com/p...需要通过httpclient调用该接口, ...

  6. 基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport的接口自动化测试框架

    接口自动化框架 项目说明 本框架是一套基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport而设计的数据驱动接口自动化测试框架,TestNG ...

  7. Java之HttpClient调用WebService接口发送短信源码实战

    摘要 Java之HttpClient调用WebService接口发送短信源码实战 一:接口文档 二:WSDL 三:HttpClient方法 HttpClient方法一 HttpClient方法二 Ht ...

  8. java实现httpclient 访问

    package com.test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; i ...

  9. java 封装httpclient 的get 和post 请求

    import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.util. ...

随机推荐

  1. 4~20mA电流输出芯片XTR111完整电路

    http://www.51hei.com/bbs/dpj-41904-1.html 为了大家方便,我这里给大家提供一种久经考验的电路,省去了大家找资料的麻烦,直接可以使用,优点有二:一是原料好买,二是 ...

  2. inotify工具安装配置

    一.安装 1)  从内核和目录里面查看是否支持inotify [root@nfs01 ~]# uname -r 2.6.32-573.el6.x86_64 [root@nfs01 ~]# ls -l ...

  3. 20145307陈俊达_安卓逆向分析_APKtools分析smail

    20145307陈俊达_安卓逆向分析_APKtools分析smail 引言 真刺激呢!到了第二篇博客了,难度开始加大,之前是简单的dex2jar和有图形界面的jd-gui,现在来隆重介绍强大的反汇编工 ...

  4. TableView,自定义TableViewCell

    自定义Table 原理: http://blog.jobbole.com/67272/ http://www.cnblogs.com/wangxiaofeinin/p/3532831.html 补充: ...

  5. codeforces 1097 Hello 2019

    又回来了.. A - Gennady and a Card Game 好像没什么可说的了. #include<bits/stdc++.h> using namespace std; cha ...

  6. BZOJ5189: [Usaco2018 Jan]Cow at Large 贪心+LCA

    BZOJ没有题面QAQ,题目链接 洛谷有:题目链接 这题首先要读懂题..(洛谷的翻译有点迷 就是指定根节点,然后可以在叶子结点放个人,然后奶牛在根,问最少要在叶子结点放多少人才能让奶牛走不到叶子结点( ...

  7. Cocos2d-x学习笔记(十二)3D特效

    特效类即是GridAction类,其实就是基于网格的3D动作类.需开启OpenGL的深度缓冲,否则容易3D失真. 下边是一个snippet,创建网格对象,并将其添加到当前layer:同时,将进行3D特 ...

  8. MySQL会创建临时表的几种情况

    1.UNION查询: 2.用到TEMPTABLE算法或者是UNION查询中的视图: 3.ORDER BY和GROUP BY的子句不一样时: 4.表连接中,ORDER BY的列不是驱动表中的:(指定了联 ...

  9. LINK : fatal error LNK1104: 无法打开文件“libboost_serialization-vc90-mt-gd-1_62.lib”

    boost安装:https://www.cnblogs.com/sea-stream/p/10205425.html 在vs中添加

  10. Python day6_dictionary字典的常见方法1_笔记(基本类型结束)

    # 字典的简述 # 1.字典不能做字典的key,列表也不能作为列表的key info={ 'k1':'v1', 'k2':'v2' } print(info) #2.通过键获取值 print(info ...