java http get_java发送http的get、post请求

packagecom.opentrans.otms.kaka.wx.utils;importjava.io.File;importjava.net.URI;importjava.nio.charset.Charset;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importcom.lcc.handler.CommonResponseHandler;importcom.lcc.handler.IResponseHandler;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.client.methods.HttpPut;importorg.apache.http.config.ConnectionConfig;importorg.apache.http.entity.StringEntity;importorg.apache.http.entity.mime.MultipartEntityBuilder;importorg.apache.http.entity.mime.content.FileBody;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClientBuilder;importorg.apache.http.util.EntityUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.util.CollectionUtils;importcom.lcc.dto.ActionResult;public classHttpUtils {private static Logger LOGGER = LoggerFactory.getLogger(HttpUtils.class);public staticCloseableHttpClient buildHttpClient() {

HttpClientBuilder httpClientBuilder=HttpClientBuilder.create().useSystemProperties();

httpClientBuilder.setDefaultConnectionConfig(

ConnectionConfig.custom().setCharset(Charset.forName("UTF-8")).build());

CloseableHttpClient httpClient=httpClientBuilder.build();returnhttpClient;

}public staticActionResult get(String url) {return get(url, null, null);

}public static ActionResult get(String url, Mapheaders) {return get(url, null, headers);

}public static ActionResult get(String url, List params, Mapheaders) {

ActionResult result= newActionResult();

CloseableHttpClient httpClient=buildHttpClient();

HttpGet request= null;try{

request= newHttpGet(url);if (!CollectionUtils.isEmpty(params)) {

String str= EntityUtils.toString(newUrlEncodedFormEntity(params));

request.setURI(new URI(url + "?" +str));

}if (headers != null) {for (Entryentry : headers.entrySet()) {

request.addHeader(entry.getKey(), entry.getValue());

}

}

LOGGER.info("Send request: " +request.getURI());

HttpResponse response=httpClient.execute(request);

HttpEntity entity=response.getEntity();

String body= EntityUtils.toString(entity, "UTF-8");if (entity != null) {

EntityUtils.consume(entity);

}int code =response.getStatusLine().getStatusCode();

solveResponse(code, body, result,null);

}catch(Exception e) {

result.setStatus(ActionResult.FAIL);

result.setMessage(e.getMessage());

LOGGER.error("Failed to receive response:", e);

}finally{

closeHttpClient(httpClient);

}returnresult;

}public staticActionResult post(String url, String content, String contentType) {return post(url, content, null, contentType);

}public static ActionResult post(String url, String content, Mapheaders, String contentType) {return post(url, content, headers, contentType, null);

}public static ActionResult post(String url, String content, Mapheaders, String contentType,

IResponseHandler responseHandler) {

ActionResult result= newActionResult();

CloseableHttpClient httpClient=buildHttpClient();

HttpPost request= null;try{

request= newHttpPost(url);

StringEntity payload= new StringEntity(content, "UTF-8");

payload.setContentType(contentType);

payload.setContentEncoding("UTF-8");

request.setEntity(payload);if (headers != null) {for (Entryentry : headers.entrySet()) {

request.addHeader(entry.getKey(), entry.getValue());

}

}

LOGGER.info("Send request: " +request.getURI());

LOGGER.info("The payload: " +content);

HttpResponse response=httpClient.execute(request);

HttpEntity entity=response.getEntity();

String body= EntityUtils.toString(entity, "UTF-8");if (entity != null) {

EntityUtils.consume(entity);

}int code =response.getStatusLine().getStatusCode();

solveResponse(code, body, result, responseHandler);

}catch(Exception e) {

result.setStatus(ActionResult.FAIL);

result.setMessage(e.getMessage());

LOGGER.error("Failed to receive response:", e);

}finally{

closeHttpClient(httpClient);

}returnresult;

}public static ActionResult postFile(String url, Map files, Mapheaders,

String contentType) {

ActionResult result= newActionResult();

CloseableHttpClient httpClient=buildHttpClient();

HttpPost request= null;try{

request= newHttpPost(url);if (headers != null) {for (Entryentry : headers.entrySet()) {

request.addHeader(entry.getKey(), entry.getValue());

}

}

MultipartEntityBuilder entityBuilder=MultipartEntityBuilder.create();

String fileName= "";for (Entryentry : files.entrySet()) {

fileName=entry.getKey();

FileBody file= newFileBody(entry.getValue());

entityBuilder.addPart(entry.getKey(), file);

}

request.setEntity(entityBuilder.build());

request.setHeader("Content-Disposition", "attachment;filename=" +fileName);

LOGGER.info("Send request: " +request.getURI());

HttpResponse response=httpClient.execute(request);

HttpEntity entity=response.getEntity();

String body=EntityUtils.toString(entity);if (entity != null) {

EntityUtils.consume(entity);

}int code =response.getStatusLine().getStatusCode();

solveResponse(code, body, result,null);

}catch(Exception e) {

result.setStatus(ActionResult.FAIL);

result.setMessage(e.getMessage());

LOGGER.error("Failed to receive response:", e);

}finally{

closeHttpClient(httpClient);

}returnresult;

}public staticActionResult put(String url, String content, String contentType) {return put(url, content, null, contentType);

}public static ActionResult put(String url, String content, Mapheaders, String contentType) {

ActionResult result= newActionResult();

CloseableHttpClient httpClient=buildHttpClient();

HttpPut request= null;try{

request= newHttpPut(url);

StringEntity payload= new StringEntity(content, "UTF-8");

payload.setContentType(contentType);

payload.setContentEncoding("UTF-8");

request.setEntity(payload);if (headers != null) {for (Entryentry : headers.entrySet()) {

request.addHeader(entry.getKey(), entry.getValue());

}

}

LOGGER.info("Send request: " +request.getURI());

LOGGER.info("The payload: " +content);

HttpResponse response=httpClient.execute(request);

HttpEntity entity=response.getEntity();

String body= EntityUtils.toString(entity, "UTF-8");if (entity != null) {

EntityUtils.consume(entity);

}int code =response.getStatusLine().getStatusCode();

solveResponse(code, body, result,null);

}catch(Exception e) {

result.setStatus(ActionResult.FAIL);

result.setMessage(e.getMessage());

LOGGER.error("Failed to receive response:", e);

}finally{

closeHttpClient(httpClient);

}returnresult;

}private static void solveResponse(intcode, String body, ActionResult result, IResponseHandler responseHandler) {

LOGGER.info("Received response, the code is " + code + ", the content is" +body);if (responseHandler == null) {

responseHandler= newCommonResponseHandler();

}

responseHandler.processResponse(code, body, result);

}private static voidcloseHttpClient(CloseableHttpClient httpClient) {try{if (httpClient != null) {

httpClient.close();

}

}catch(Exception e) {

LOGGER.error("httpclient close exception", e);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值