public static Map<String, Object> invokeCapp(String URL, Map paramMap) throws Exception {
Map map = new HashMap(); RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(2000) // 设置连接超时时间,单位毫秒
.setConnectionRequestTimeout(1000)
.setSocketTimeout(5000) // 请求获取数据的超时时间,单位毫秒
.build();
HttpRequestRetryHandler myRetryHandler = new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
return false;
}
};
CloseableHttpClient client = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(myRetryHandler)
.build(); try {
JSONObject paramJson = new JSONObject(paramMap);
StringEntity paramEntity = new StringEntity(paramJson.toString(), "UTF-8"); // 对参数进行编码
paramEntity.setContentType("application/x-www-form-urlencoded; charset=utf-8");
// paramEntity.setContentType("application/json; charset=utf-8"); HttpPost httpPost = new HttpPost(URL);
httpPost.setEntity(paramEntity);
httpPost.setConfig(requestConfig); CloseableHttpResponse response = client.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) {
String responseStr = EntityUtils.toString(entity, "UTF-8");
logger.info("RequestUtils - responseStr <== " + responseStr);
if (StringHelper.isEmpty(responseStr)) {
responseStr = "{}";
}
int statusCode = response.getStatusLine().getStatusCode();
logger.info("RequestUtils - statusCode <== " + statusCode);
if (HttpServletResponse.SC_OK == statusCode) {
JSONObject dataJson = (JSONObject) JSONObject.parse(responseStr);
map = new HashMap(dataJson);
} else {
logger.info("RequestUtils - invokeCapp <== " + responseStr);
return map;
}
}
response.close();
} finally {
client.close();
} return map;
}

Java HttpClient4.5.2发送post请求示例的更多相关文章

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

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

  2. Java利用原始HttpURLConnection发送http请求数据小结

    1,在post请求下,写输出应该在读取之后,否则会抛出异常. 即操作OutputStream对象应该在InputStreamReader之前. 2.conn.getResponseCode()获取返回 ...

  3. java中原生的发送http请求(无任何的jar包导入)

    package com.teamsun.pay.wxpay.util; import java.io.BufferedReader; import java.io.IOException; impor ...

  4. java 常见几种发送http请求案例

    import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...

  5. Java客户端通过Http发送POST请求上传文件到web服务器

    http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html 1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.n ...

  6. Java HttpURLConnection发送post请求示例

    public static Map<String, Object> invokeCapp(String urlStr, Map<String, Object> params) ...

  7. Java之使用HttpClient发送GET请求

    package LoadRunner; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import o ...

  8. [Java]随记--HttpClient发送put请求

    http://blog.csdn.net/u010989191/article/details/52852155 ******************************************* ...

  9. Java发送HTTPS请求

    前言 上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 .我也是由于对接了其他企业后总结了一套发送 https的工具.大家网上找方法很多的,但是可不是你粘过来就能用啊, ...

随机推荐

  1. EF Core新增迁移时无法加载程序集“System.ValueTuple”的错误

    EF Core使用迁移命令时,如: Add-Migration Init 有时会出现如下错误: System.IO.FileLoadException: Could not load file or ...

  2. 流式大数据计算实践(7)----Hive安装

    一.前言 1.这一文学习使用Hive 二.Hive介绍与安装 Hive介绍:Hive是基于Hadoop的一个数据仓库工具,可以通过HQL语句(类似SQL)来操作HDFS上面的数据,其原理就是将用户写的 ...

  3. 搞懂Linux下的几种文件类型

    在Linux系统下,有七类文件类型: 普通文件(-) 目录(d) 软链接(字符链接L) 套接字文件(S) 字符设备(S) 块设备(B) 管道文件(命名管道P) 普通文件.目录.软链接无需多解释. 管道 ...

  4. WebLogic及其他

    如何给WebLogic指定大小的内存? 在启动WebLogic的脚本中(位于所在Domian对应服务器目录下的startServerName),增加set MEM_ARGS= -Xms32m -Xmx ...

  5. TypeScript,初次见面,请多指教 ?

    为什么用 TS ? 说实话,最开始并没有想把 TS 用到实际项目中来,一来是感觉"类型"会限制 JS 的优势(好吧,就是浪写浪惯了):二来听闻 TS + Redux 的酸爽滋味,有 ...

  6. [JS设计模式]:工厂模式(3)

    简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口. 这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况. 说的通俗点,就像公司茶水间的饮料 ...

  7. 【代码笔记】Web-CSS-CSS background背景

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. 【Dojo 1.x】笔记5 使用本地引用

    习惯用CDN引用的同学肯定会知道还有一种叫本地引用,这篇笔记测试本地引用. Dojo SDK下载地址:点我 下载中间的Release Package即可,如果希望下载完整包(Full Source), ...

  9. 广州.NET微软技术俱乐部 - 动手实验室

    本文正在写草稿中, 发布时会在群里单独通知

  10. Git在商业项目中的使用流程

    一 引言 这一篇文章还是记录我在杭州工作的总结. 我刚来公司的时候,对Git的使用很头痛,因为在学校里面很少用这个东西,即使用,一般也只有一个分支,不会出现代码冲突和代码合并的情况.但是公司里面一个项 ...