import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.HttpClientUtils;
import org.apache.http.client.utils.URIBuilder;
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;
public class HttpClientUtil {
public static String post(String url, List<NameValuePair> params, int retrys) {
CloseableHttpResponse response = null;
CloseableHttpClient httpclient = null;
try {
httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(6000).setConnectTimeout(3000).build();
httppost.setConfig(requestConfig);
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
System.out.println("executing request " + httppost.getURI());
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
if (entity != null) {
return EntityUtils.toString(entity);
} else {
return "";
}
} catch (Exception e) {
if (retrys > 0) {
return post(url, params, retrys - 1);
} else {
//TODO: add log
return "";
}
} finally {
HttpClientUtils.closeQuietly(response);
HttpClientUtils.closeQuietly(httpclient);
}
}
public static String get(String url, List<NameValuePair> params, int retrys) {
CloseableHttpResponse response = null;
CloseableHttpClient httpclient = null;
try {
httpclient = HttpClients.createDefault();
URIBuilder builder = new URIBuilder(url);
if (null != params && !params.isEmpty()) {
builder.addParameters(params);
}
HttpGet httpget = new HttpGet(builder.toString());
System.out.println("executing request " + httpget.getURI());
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(6000).setConnectTimeout(3000).build();
httpget.setConfig(requestConfig);
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
return EntityUtils.toString(entity);
} else {
return "";
}
} catch (Exception e) {
if (retrys > 0) {
return get(url, params, retrys - 1);
} else {
//TODO:add log
return "";
}
} finally {
HttpClientUtils.closeQuietly(response);
HttpClientUtils.closeQuietly(httpclient);
}
}
public static void main(String[] args) {
String url = "http://xxxxx/trace/v2/entity/list";
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("ak", "xxxxxxxx"));
params.add(new BasicNameValuePair("service_id", "xxxxxx"));
System.out.println(get(url, params, 3));
url = "http://xxxxx/trace/v2/entity/add";
params.add(new BasicNameValuePair("entity_name", "xx"));
System.out.println(post(url, params, 3));
}
}
httpclient版本:4.5.1
相关推荐
httpClientUtil工具类
http请求工具类HttpClientUtil,get,post请求(csdn)————程序
HttpClientUtil请求第三方接口,可以直接使用,post请求方式、get请求方式都有,直接粘贴复制就ok
HttpClientUtil4.java 工具类
HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件
该工具类是java 调用第三方接口时需要使用到的。HttpClientUtil 包含get和post方法。
HttpClientUtil2-发送json返回json测试通过.java
1.基于HttpClient-4.4.1封装的一个工具类; 2.基于HttpAsycClient-4.1封装的异步HttpClient工具类; 3.javanet包下面是基于jdk自带的UrlConnection进行封装的。 前2个工具类支持插件式配置Header、插件式配置...
自己做项目中用到的,以后保存下来以防以后用到。多多积累。
HttpClient汇总工具类 HttpClient汇总工具类HttpClient汇总工具类HttpClient汇总工具类
基于jmeter+Java+HttpclientUtil实现的接口测试工具,通过Excel表格进行维护接口相关参数信息,借助Jmeter工具通过java请求设计接口测试自动化测试用例。代码重写了JavaSampleClient类,在使用过程中取出了冗余的...