4.2 版本

     /**
* url 请求 paramUrl
*
* @time 2015年11月10日下午4:40:22
* @packageName com.rom.utils
* @param url url请求地址
* @param header 请求头信息
* @param params url请求参数
* @param paramstype 参数类型 1:json格式 ; 其他:正常格式;
* @param resulttype 返回值类型 1: 压缩流字符串 2:正常字符串
* @return
*/
public synchronized static String paramUrl(String url, Map<String, String> header, Map<String, Object> params,
String paramstype, String resulttype) { String result = "";
HttpClient httpClient = new DefaultHttpClient();
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000); HttpPost httpPost = new HttpPost(url); if (header != null) {
Set<String> headerkey = header.keySet();
Iterator<String> headerkeyit = headerkey.iterator();
while (headerkeyit.hasNext()) {
String key = (String) headerkeyit.next();
httpPost.setHeader(key, header.get(key).toString());
}
} try {
// 如果参数类型为1 证明参数传递方式为 json格式
if (paramstype != null && paramstype.equals("1")) {
if (params != null) {
StringEntity entity = new StringEntity(JSONObject.fromObject(params).toString(), "utf-8");// 解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
} else {
// 参数格式为 键值对形式
if (params != null) {
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
Set<String> keySet = params.keySet();
Iterator<String> keyit = keySet.iterator();
while (keyit.hasNext()) {
String key = (String) keyit.next();
formparams.add(new BasicNameValuePair(key, params.get(key).toString()));
}
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
httpPost.setEntity(uefEntity);
}
} HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
if (entity != null) {
// 返回类型如果不为空 并且 等于1 证明该返回结果经过zip压缩
if (resulttype != null && resulttype.equals("1")) {
result = EntityUtils.toString(new GzipDecompressingEntity(entity), "utf-8");
} else {
result = EntityUtils.toString(entity, "utf-8");
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
log.error(e.getMessage());
} catch (ClientProtocolException e) {
e.printStackTrace();
log.error(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
log.error(e.getMessage());
} finally {
httpClient.getConnectionManager().shutdown();
}
return result;
}

4.4 版本

     /**
* url 请求 paramUrl
*
* @time 2015年11月10日下午4:40:22
* @packageName com.rom.utils
* @param url url请求地址
* @param header 请求头信息
* @param params url请求参数
* @param paramstype 参数类型 1:json格式 ; 其他:正常格式;
* @return
*/
public static JSONObject paramUrl(String url ,Map<String, String> header,
Map<String, Object> params,String paramstype){ RequestConfig config = RequestConfig.custom()
.setConnectionRequestTimeout(10000).setConnectTimeout(10000)
.setSocketTimeout(10000).build(); HttpPost httpPost = new HttpPost(url); httpPost.setConfig(config);
if (header != null) {
Set<String> headerkey = header.keySet();
Iterator<String> headerkeyit = headerkey.iterator();
while (headerkeyit.hasNext()) {
String key = (String) headerkeyit.next();
httpPost.setHeader(key, header.get(key).toString());
}
} if (params != null) {
// 如果参数类型为1 证明参数传递方式为 json格式
if (paramstype != null && paramstype.equals("1")) {
StringEntity entity = new StringEntity(JSONObject.fromObject(params).toString(), "utf-8");// 解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
} else {
// 参数格式为 键值对形式
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
Set<String> keySet = params.keySet();
Iterator<String> keyit = keySet.iterator();
while (keyit.hasNext()) {
String key = (String) keyit.next();
formparams.add(new BasicNameValuePair(key, params.get(key).toString()));
}
UrlEncodedFormEntity uefEntity = null;
try {
uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
httpPost.setEntity(uefEntity);
}
} CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(null).build();//设置进去 CloseableHttpResponse response = null;
StringBuffer out;
try {
response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); InputStream in = entity.getContent(); out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
JSONObject json = JSONObject.fromObject(out.toString());
in = null;
return json;
} catch (ClientProtocolException e) {
log.error(e.getMessage());
} catch (IllegalStateException e) {
log.error(e.getMessage());
} catch (IOException e) {
log.error(e.getMessage());
} finally{
try {
if (httpClient!=null) {
httpClient.close();
}
} catch (IOException e) {
log.error(e);
}
}
return null;
}

HttpClient 4.4 请求的更多相关文章

  1. HttpClientUtil [使用apache httpclient模拟http请求]

    基于httpclient-4.5.2 模拟http请求 以get/post方式发送json请求,并获取服务器返回的json -------------------------------------- ...

  2. 【JAVA】通过HttpClient发送HTTP请求的方法

    HttpClient介绍 HttpClient 不是一个浏览器.它是一个客户端的 HTTP 通信实现库.HttpClient的目标是发 送和接收HTTP 报文.HttpClient不会去缓存内容,执行 ...

  3. Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  4. Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

  6. 使用httpclient发送post请求与get请求

    最近因为项目的要求,需要使用httpclient来发送请求.但是查阅了许多博客,大家发送请求的方法各不相同.原因是因为httpclient的jar包的不同版本,其内部方法也不相同.因此抛开具体用到的j ...

  7. Java Apcahe的HTTPClient工具Http请求当请求超时重发

    java Apcahe的HTTPClient工具Http请求当请求超时时底层会默认进行重发,默认重发次数为3次,在某些情况下为了防止重复的请求,需要将自动重发覆盖. 设置HTTP参数,设置不进行自动重 ...

  8. (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)

    (一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...

  9. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例

     要搭建的项目的项目结构如下(使用的框架为:Spring.SpingMVC.MyBatis): 2.pom.xml中的配置如下(注意,本工程分为几个小的子工程,另外两个工程最终是jar包): 其中 ...

  10. Httpclient发送json请求

    一.Httpclient发送json请求 public String RequestJsonPost(String url){    String strresponse = null;    try ...

随机推荐

  1. 【HDU 1846】 Brave Game

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=1846 [算法] 巴什博弈 若有(m+1)个石子,显然先手不能直接取完,后手必胜 因此,我们可以把石 ...

  2. 【BZOJ3926】【ZJOI2015】诸神眷顾的幻想乡 广义后缀自动机

    题目: 题目在这里 思路&做法: 参考的题解 既然只有\(20\)个叶子节点, 那么可以从每个叶子节点往上建一颗\(trie\)树, 然后合并成一棵大的\(trie\)树, 然后构建广义后缀自 ...

  3. jquery.slides.js

    http://slidesjs.com/#docs 一款强大的,专业的幻灯片组件,全方位对幻灯片的速度..全方位的控制: $(function(){ $("#slides").sl ...

  4. Ajax+Struts做登录判断

    Action类里: /* * 登录 */ public ActionForward doLogin(ActionMapping mapping,ActionForm form,HttpServletR ...

  5. CI中的数据库操作以及AR连贯操作

    要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...

  6. JavaWeb中使用到的类与接口整理(一)servlet包

    javaweb学了半本,整理了一下Servlet技术模型.servlet容器模型.jsp技术模型中的类与接口,有助于理解web应用中的页面跳转和参数传递,目录: HttpServlet 可作Scope ...

  7. WebStorm2018.2 破解 激活

    1.进入http://idea.lanyus.com/,如图: 2.下载http://idea.lanyus.com/jar/JetbrainsCrack-3.1-release-enc.jar . ...

  8. ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBA

    在MySQL 5.7版本中,备份迁移数据库的时候,还原时提示如下报错信息 ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be ...

  9. (转载) IaaS, PaaS, Saas

    如果你是一个网站站长,想要建立一个网站.不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序. 现在你追随潮流,采用流行的云计算,如果你采用 IaaS 服务,那么意味着你就不用自 ...

  10. 我的C++笔记(类与对象)

    /* * Main.cpp * * Created on: 2015-7-24 * Author: feiruo */ /* * 类与对象: * * 1.抽象: * 面向对象方法中的抽象,是指对具体问 ...