java post请求
package com.jfbank.loan.intf.util;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import ms.platform.base.log.MSLog;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.apache.http.protocol.HTTP;
public class HttpClientUtil {
private static HttpClientUtil clientUtil ;
private static CloseableHttpClient httpClient = null;
static {
//
httpClient = HttpClients.createDefault();
//
clientUtil = new HttpClientUtil();
}
private int status = 0;
/**
* 私有化构造方法
*/
private HttpClientUtil() {
}
/**
* 获取当前对象,单例对象
* @return
*/
public static HttpClientUtil getInstance() {
return clientUtil;
}
/**
* POST提交
* @param strUrl 请求URL
* @param strJson 请求json字符串
* @return
*/
public String postJson(String strUrl,String strJson) {
String body = null;
if (strJson != null && !"".equals(strJson.trim())) {
try {
//实体
StringEntity entity = new StringEntity(strJson.toString(),"utf-8");
//post
HttpPost postMethod = new HttpPost(strUrl);
postMethod.setEntity(entity);
long startTime = System.currentTimeMillis();
//响应
CloseableHttpResponse response = httpClient.execute(postMethod);
long endTime = System.currentTimeMillis();
int statusCode = response.getStatusLine().getStatusCode();
MSLog.info("statusCode:" + statusCode);
MSLog.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));
if (statusCode != HttpStatus.SC_OK) {
MSLog.error("Method failed:" + response.getStatusLine());
status = 1;
}
// Read the response body
body = EntityUtils.toString(response.getEntity());
} catch (IOException e) {
// 发生网络异常
MSLog.error("exception occurred:",e);
// 网络错误
status = 3;
} finally {
MSLog.info("调用接口状态:" + status);
}
}
return body;
}
/**
* POST提交
* @param strUrl 请求URL
* @param strJson 请求json字符串
* @return
*/
public String postMap(String strUrl,Map<Object, Object> paraMap) {
String body = null;
if (paraMap != null && paraMap.size() > 0) {
try {
/** 设置请求参数 */
//实体
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
//赋值
for (Object key : paraMap.keySet()) {
nvps.add(new BasicNameValuePair(key.toString(), (String)paraMap.get(key)));
}
//post
HttpPost postMethod = new HttpPost(strUrl);
postMethod.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
//请求时间
long startTime = System.currentTimeMillis();
//响应
CloseableHttpResponse response = httpClient.execute(postMethod);
long endTime = System.currentTimeMillis();
int statusCode = response.getStatusLine().getStatusCode();
MSLog.info("statusCode:" + statusCode);
MSLog.info("调用API 花费时间(单位:毫秒):" + (endTime - startTime));
if (statusCode != HttpStatus.SC_OK) {
MSLog.error("Method failed:" + response.getStatusLine());
status = 1;
}
// Read the response body
body = EntityUtils.toString(response.getEntity());
} catch (IOException e) {
// 发生网络异常
MSLog.error("exception occurred:",e);
// 网络错误
status = 3;
} catch (Exception e) {
e.printStackTrace();
} finally {
MSLog.info("调用接口状态:" + status);
}
}
return body;
}
}
java post请求的更多相关文章
- Java HTTP请求
注意:java http请求要放在 try catch里面,该过程是一个阻塞过程,所以需要新建一个线程进行处理 try { HttpPost request = new HttpPost(URL); ...
- java读取请求中body数据
java读取请求中body数据 /** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOExcepti ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求
Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求 Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...
- 解决Fiddler不能监听Java HttpURLConnection请求的方法
在默认情况下,Fiddler不能监听Java HttpURLConnection请求.究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是 在应用程 ...
- 使用Fiddler监听java HttpURLConnection请求
使用Fiddler监听java HttpURLConnection请求
- java判断请求是否ajax异步请求
java判断请求是否ajax异步请求 解决方法: if (request.getHeader("x-requested-with") != null && re ...
- kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...
- Java 监控请求
监控对象 import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Map.Ent ...
随机推荐
- angularJS推荐显示注入写法
使用js压缩工具时发现压缩之后的控制器注入参数由原来的$scope变成了a,b...这样的字母而导致js失效,那么我们推荐使用完整的显示注入方式来解决此问题! //隐式注入的写法 angular.mo ...
- 【android学习4】Eclipse中Clean作用
今天修改Servlet中代码,重启服务端程序之后发现没有启作用,于是Clean了一把,果然生效. 查阅资料得知,Eclipse中是根据时间戳去编译代码,如果某个类对应的时间戳没有发生改变就不会重新编译 ...
- Mac下安装和配置mongoDB
mac下的mongodb下载安装比较简单,主要有两种方式,一种是下载压缩包解压,另一种是通过npm或者homebrew命令安装,这里就不赘述了, 复杂的在于mongodb运行环境的配置(若未配置运行环 ...
- MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集(转)
namespace Entity { public interface IPagedList { /// <summary> /// 记录数 /// </summary> in ...
- ecshop前台英文后台中文
方法一:修改init.php文件方法改变ecshop默认语言包 该方法适用于:安装ecshop中文版的站长使用. 1.进入您的后台,按照下图提示,将系统语言选项设为 en_us(英语) ,确定保存. ...
- JAVA并发编程的艺术
CAS有两个特点: 1.for循环 2.compareAndSet(可能别的线程先改变然后又重置,此时CAS是成功的,也就是CAS执行的过程中,可能多个线程对此变量做了修改,而不是各个线程互斥的修改) ...
- iOS GCD简单使用
Grand Central Dispatch (GCD) 1)运行在主线程的Main queue,通过dispatch_get_main_queue获取. /*!* @function dispatc ...
- EXP的flashback_scn和flashback_time
数据库设置 a. 设置UNDO_RETENTION的初始值(在短时间内)代表你想要查过去多远的时间. b. 设置初始化参数UNDO_MANAGEMENT=AUTO. c. 建立一个还原点空间,要有足够 ...
- Hand 3D Pose Estimation
https://cvarlab.icg.tugraz.at/projects/hand_detection/
- 利用NSUserdefaults来存储自定义的NSObject类及自定义类数组
利用NSUserdefaults来存储自定义的NSObject类及自定义类数组 1.利用NSUserdefaults来存储自定义的NSObject类 利用NSUserdefaults也可以来存储及获取 ...