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. Python Web学习笔记之GIL机制下的鸡肋多线程

    为什么有人会说 Python 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同学 ...

  2. MVC 扩展RadioButtonListFor和CheckBoxListFor

    学习MVC时候前端通常会用到HtmlHelper,使得前端编码简便很多.我们可能会经常用到htmlHelper中一些的EditorFor,LabelFor,ValiationMessageFor, 发 ...

  3. PHP安装包TS和NTS的区别

    原文链接:http://blog.csdn.net/zhuifengshenku/article/details/38796555 TS指Thread Safety,即线程安全,一般在IIS以ISAP ...

  4. Android 实践项目开发 总结

      Android 实践项目开发 总结 课程:移动平台应用开发实践  班级:201592  姓名:杨凤  学号:20159213 成绩:___________       指导老师:娄嘉鹏       ...

  5. 解决Vue循环中子组件不实时更新的问题

    问题描述 使用Element-UI中的table组件时会遇到一个常见的问题.当在el-table中调用子组件的时候会出现数据更新后,子组件没有重新渲染的问题. eg:资源列表中的健康度组件. 代码如下 ...

  6. Hadoop新增和删除节点

    #新增节点 1.安装lunix,和以前一样的版本 2.初始化系统环境 2.1.设置静态ip vi /etc/sysconfig/network-scripts/ifcfg-eth0 //增加 #Adv ...

  7. Python3基础 os.path.basename 处理路径字符串,返回文件的名字

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. 解决Android Studio Conflict with dependency 'com.android.support:support-annotations'报错

    解决Android Studio Conflict with dependency 'com.android.support:support-annotations'报错 在Android Studi ...

  9. 51NOD 1057 N的阶乘

    1057 N的阶乘 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   输入N求N的阶乘的准确值.   Input 输入N(1 <= N <= 10000) ...

  10. redis持久化RDB和AOF-转载

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...