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. OpenCV-跟我一起学数字图像处理之拉普拉斯算子

    https://www.cnblogs.com/german-iris/p/4840647.html Laplace算子和Sobel算子一样,属于空间锐化滤波操作.起本质与前面的Spatial Fil ...

  2. [转] Python的import初探

    转载自:http://www.lingcc.com/2011/12/15/11902/#sec-1 日常使用python编程时,为了用某个代码模块,通常需要在代码中先import相应的module.那 ...

  3. PHP多进程并行执行php脚本

    <?php //fork.php $cmds = [ '/data/wwwroot/default/test1.php', '/data/wwwroot/default/test2.php', ...

  4. Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程

    Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程 原因: 一般造成这种原因是因为项目中有非守护线程的存在: 解决方案: 一.从Tomcat上解决 方案1:(推荐的方案:因为一台 ...

  5. 20145122《Java程序设计》第七周学习总结

    教材学习内容总结 1.在只有Lambda表达式的情况下,参数的类型必须写出来. 2.Lambda表达式本身是中性的,同样的Lambda表达式可用来表示不同目标类型的对象操作. 3.Lambda表达式只 ...

  6. @SuppressWarings注解的作用和用法

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @SuppressWar ...

  7. 树莓派GPIO

  8. bind9安装配置

    BIND的安装配置: dns服务,程序包名叫bind,程序名named 程序包: bind bind-libs bind-utils bind-chroot: /var/named/chroot/ b ...

  9. An error occurred during installation: No such plugin: cloudbees-folder

    解决办法:下载cloudbees-folder.hpi放在目录/usr/local/tomcat/webapps/jenkins/WEB-INF/detached-plugins/下,重启tomcat ...

  10. 新开发项目Jacoco代码覆盖率

    一般只有新的项目才会去用JaCoCo工具看一下代码覆盖率, 一来看看测试有没有漏的测试用例 二来看看开发有没有留下冗余的代码 新开发项目Jacoco代码覆盖率后端接口打成jar包,进行启动 #exec ...