1、引入相关依赖包
jar包下载:httpcore4.5.5.jar fastjson-1.2.47.jar
post请求发送JSONObject 参数
public static String post(JSONObject json, String url) {
String responseBody = "";
try {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
// 使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(10000).setConnectionRequestTimeout(10000)
.setSocketTimeout(10000).build();
httpPost.setConfig(requestConfig);
httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
httpPost.addHeader("Cache-Control", "no-cache");
// 解决中文乱码问题
StringEntity stringEntity = new StringEntity(json.toString(), "UTF-8");
httpPost.setEntity(stringEntity);
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(final HttpResponse response)
throws ClientProtocolException, IOException {
int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
} else {
throw new ClientProtocolException(
"Unexpected response status: " + status);
}
}
};
responseBody = httpclient.execute(httpPost, responseHandler);
System.out.println("----------------------------------------");
// System.out.println(responseBody);
return responseBody;
} catch (SocketTimeoutException e1) {
responseBody = "客户端请求超时";
} catch (Exception e) {
System.out.println(e);
}
return responseBody;
}