java http 工具类_一个java的http请求的封装工具类

packagedemo;importjava.io.IOException;importjava.util.Map;importjava.util.Set;importorg.apache.http.HttpEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.client.methods.HttpRequestBase;importorg.apache.http.entity.StringEntity;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.protocol.HTTP;importorg.apache.http.util.EntityUtils;public classHttpClient {public static final String DEFAULT_CHARSET = "UTF-8";public static final String JSON_CONTENT_FORM = "application/json;charset=UTF-8";public static final String CONTENT_FORM = "application/x-www-form-urlencoded;charset=UTF-8";public static String doService(String url, HttpParamers paramers, HttpHeader header, int connectTimeout, int readTimeout) throwsException {

HttpMethod httpMethod=paramers.getHttpMethod();switch(httpMethod) {caseGET:returndoGet(url, paramers, header, connectTimeout, readTimeout);casePOST:returndoPost(url, paramers, header, connectTimeout, readTimeout);

}return null;

}/*** post方法

*@paramurl

*@paramparamers

*@paramheader

*@paramconnectTimeout

*@paramreadTimeout

*@return*@throwsIOException*/

public static String doPost(String url, HttpParamers paramers, HttpHeader header, int connectTimeout, int readTimeout) throwsIOException {

String responseData= "";

CloseableHttpClient httpClient= null;

CloseableHttpResponse httpResponse= null;try{

String query= null;

HttpPost httpPost= newHttpPost(url);

setHeader(httpPost, header);if(paramers.isJson()) {//json数据

httpPost.setHeader(HTTP.CONTENT_TYPE, JSON_CONTENT_FORM);

query=paramers.getJsonParamer();

}else{//表单数据

httpPost.setHeader(HTTP.CONTENT_TYPE, CONTENT_FORM);

query=paramers.getQueryString(DEFAULT_CHARSET);

}if(query != null){

HttpEntity reqEntity= newStringEntity(query);

httpPost.setEntity(reqEntity);

}

httpClient=HttpClients.createDefault();

httpResponse=httpClient.execute(httpPost);

HttpEntity resEntity=httpResponse.getEntity();

responseData=EntityUtils.toString(resEntity);

}catch(Exception e){

e.printStackTrace();

}finally{

httpResponse.close();

httpClient.close();

}returnresponseData;

}/*** get方法

*@paramurl

*@paramparams

*@paramheader

*@paramconnectTimeout

*@paramreadTimeout

*@return*@throwsIOException*/

public static String doGet(String url, HttpParamers params, HttpHeader header, int connectTimeout, int readTimeout) throwsIOException {

String responseData= "";

CloseableHttpClient httpClient= null;

CloseableHttpResponse httpResponse= null;try{

String query=params.getQueryString(DEFAULT_CHARSET);

url=buildGetUrl(url, query);

HttpGet httpGet= newHttpGet(url);

setHeader(httpGet, header);

httpClient=HttpClients.createDefault();

httpResponse=httpClient.execute(httpGet);

HttpEntity resEntity=httpResponse.getEntity();

responseData=EntityUtils.toString(resEntity);

}catch(Exception e){

e.printStackTrace();

}finally{

httpResponse.close();

httpClient.close();

}returnresponseData;

}private static voidsetHeader(HttpRequestBase httpRequestBase, HttpHeader header){if(header != null){

Map headerMap =header.getParams();if (headerMap != null && !headerMap.isEmpty()) {

Set> entries =headerMap.entrySet();for (Map.Entryentry : entries) {

String name=entry.getKey();

String value=entry.getValue();

httpRequestBase.setHeader(name, value);

}

}

}

}private static String buildGetUrl(String url, String query) throwsIOException {if (query == null || query.equals("")) {returnurl;

}

StringBuilder newUrl= newStringBuilder(url);boolean hasQuery = url.contains("?");boolean hasPrepend = (url.endsWith("?")) || (url.endsWith("&"));if (!hasPrepend) {if(hasQuery) {

newUrl.append("&");

}else{

newUrl.append("?");

hasQuery= true;

}

}

newUrl.append(query);

hasPrepend= false;returnnewUrl.toString();

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值