一、Httpclient发送post
public static JSONObject post(String url, JSONObject json, BaseReqPojo headers) throws Exception {
JSONObject response = null;
BufferedReader bufferedReader = null;
StringBuilder entityStringBuilder = new StringBuilder();
try {
HttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setEntity(new StringEntity(json.toString(), "UTF-8"));
LOGGER.info("客户端请求报文:" + s.toString());
HttpResponse res = client.execute(post);
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = res.getEntity();
if (entity != null) {
bufferedReader = new BufferedReader
(new InputStreamReader(entity.getContent(), "UTF-8"), 8 * 1024);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
entityStringBuilder.append(line);
}
LOGGER.info("客户端获取响应报文:" + entityStringBuilder.toString());
response = JSONObject.parseObject(entityStringBuilder.toString());
}
} else {
LOGGER.info("连接失败:" + res);
}
} catch (Exception e) {
throw new Exception(e);
}
return response;
}
二、Httpclient发送get
public static JSONObject get(String url, BaseReqPojo headers) throws Exception{
JSONObject response = new JSONObject();
try {
HttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Content-Type", "application/json");
HttpResponse httpResponse = httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == org.apache.http.HttpStatus.SC_OK) {
LOGGER.info("客户端获取响应报文header->[" + httpResponse + "]");
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
StringBuilder entityStringBuilder = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader
(new InputStreamReader(entity.getContent(), "UTF-8"), 8 * 1024);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
entityStringBuilder.append(line);
}
LOGGER.info("客户端获取响应报文:" + entityStringBuilder.toString());
Object obj = JSONObject.parse(entityStringBuilder.toString());
if (obj instanceof JSONArray) {
response.put("list", obj);
} else {
response = (JSONObject) obj;
}
// 返回的报文体为空时
if (response == null) {
response = new JSONObject();
}
}
}
} catch (Exception e) {
throw new Exception(e);
}
return response;
}
三、Httpclient发送delete
1.由于HttpDelete不能添加参数,需要复写HttpDelete
public class MyHttpDelete extends HttpEntityEnclosingRequestBase {
public static final String METHOD_NAME = "DELETE";
public String getMethod() {
return METHOD_NAME;
}
public MyHttpDelete(final String uri) {
super();
setURI(URI.create(uri));
}
public MyHttpDelete(final URI uri) {
super();
setURI(uri);
}
public MyHttpDelete() {
super();
}
}
2.发送delete请求
public static JSONObject delete(String url, JSONObject json) {
CloseableHttpClient httpClient = HttpClients.createDefault();
MyHttpDelete httpDelete = new MyHttpDelete(url);
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(30000).setConnectionRequestTimeout(30000).setSocketTimeout(10000).build();
httpDelete.setConfig(requestConfig);
httpDelete.setHeader("Content-type", "application/json");
httpDelete.setHeader("DataEncoding", "UTF-8");
CloseableHttpResponse httpResponse = null;
try {
httpDelete.setEntity(new StringEntity(JSON.toJSONString(json),"UTF-8"));
httpResponse = httpClient.execute(httpDelete);
HttpEntity entity = httpResponse.getEntity();
StringBuilder entityStringBuilder = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader
(new InputStreamReader(entity.getContent(), "UTF-8"), 8 * 1024);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
entityStringBuilder.append(line);
}
LOGGER.info("客户端获取响应报文:" + entityStringBuilder.toString());
return JSONObject.parseObject(entityStringBuilder.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (httpResponse != null) {
try {
httpResponse.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}