HttpClientUtil

来源:互联网 发布:家庭光纤网络布线 编辑:程序博客网 时间:2024/06/13 17:18
package cn.mqd.httpClient;import java.io.File;import java.io.IOException;import java.net.URL;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;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.conn.ssl.DefaultHostnameVerifier;import org.apache.http.conn.util.PublicSuffixMatcher;import org.apache.http.conn.util.PublicSuffixMatcherLoader;import org.apache.http.entity.ContentType;import org.apache.http.entity.StringEntity;import org.apache.http.entity.mime.MultipartEntityBuilder;import org.apache.http.entity.mime.content.FileBody;import org.apache.http.entity.mime.content.StringBody;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 {private RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(15000).setConnectionRequestTimeout(15000).build();private static HttpClientUtil instance = null;private HttpClientUtil() {}public static HttpClientUtil getInstance() {if (instance == null) {instance = new HttpClientUtil();}return instance;}/** * 发送 post请求 *  * @param httpUrl *            地址 */public String sendHttpPost(String httpUrl) {HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPostreturn sendHttpPost(httpPost);}/** * 发送 post请求 *  * @param httpUrl *            地址 * @param params *            参数(格式:key1=value1&key2=value2) */public String sendHttpPost(String httpUrl, String params) {HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPosttry {// 设置参数StringEntity stringEntity = new StringEntity(params, "UTF-8");stringEntity.setContentType("application/x-www-form-urlencoded");httpPost.setEntity(stringEntity);} catch (Exception e) {e.printStackTrace();}return sendHttpPost(httpPost);}/** * 发送 post请求 *  * @param httpUrl *            地址 * @param maps *            参数 */public String sendHttpPost(String httpUrl, Map<String, String> maps) {HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost// 创建参数队列List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();for (String key : maps.keySet()) {nameValuePairs.add(new BasicNameValuePair(key, maps.get(key)));}try {httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));} catch (Exception e) {e.printStackTrace();}return sendHttpPost(httpPost);}/** * 发送 post请求(带文件) *  * @param httpUrl *            地址 * @param maps *            参数 * @param fileLists *            附件 */public String sendHttpPost(String httpUrl, Map<String, String> maps,List<File> fileLists) {HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPostMultipartEntityBuilder meBuilder = MultipartEntityBuilder.create();for (String key : maps.keySet()) {meBuilder.addPart(key, new StringBody(maps.get(key),ContentType.TEXT_PLAIN));}for (File file : fileLists) {FileBody fileBody = new FileBody(file);meBuilder.addPart("files", fileBody);}HttpEntity reqEntity = meBuilder.build();httpPost.setEntity(reqEntity);return sendHttpPost(httpPost);}/** * 发送Post请求 *  * @param httpPost * @return */private String sendHttpPost(HttpPost httpPost) {CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;HttpEntity entity = null;String responseContent = null;try {// 创建默认的httpClient实例.httpClient = HttpClients.createDefault();httpPost.setConfig(requestConfig);// 执行请求response = httpClient.execute(httpPost);entity = response.getEntity();responseContent = EntityUtils.toString(entity, "UTF-8");} catch (Exception e) {e.printStackTrace();} finally {try {// 关闭连接,释放资源if (response != null) {response.close();}if (httpClient != null) {httpClient.close();}} catch (IOException e) {e.printStackTrace();}}return responseContent;}/** * 发送 get请求 *  * @param httpUrl */public String sendHttpGet(String httpUrl) {HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求return sendHttpGet(httpGet);}/** * 发送 get请求Https *  * @param httpUrl */public String sendHttpsGet(String httpUrl) {HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求return sendHttpsGet(httpGet);}/** * 发送Get请求 *  * @param httpPost * @return */private String sendHttpGet(HttpGet httpGet) {CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;HttpEntity entity = null;String responseContent = null;try {// 创建默认的httpClient实例.httpClient = HttpClients.createDefault();httpGet.setConfig(requestConfig);// 执行请求response = httpClient.execute(httpGet);entity = response.getEntity();responseContent = EntityUtils.toString(entity, "UTF-8");} catch (Exception e) {e.printStackTrace();} finally {try {// 关闭连接,释放资源if (response != null) {response.close();}if (httpClient != null) {httpClient.close();}} catch (IOException e) {e.printStackTrace();}}return responseContent;}/** * 发送Get请求Https *  * @param httpPost * @return */private String sendHttpsGet(HttpGet httpGet) {CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;HttpEntity entity = null;String responseContent = null;try {// 创建默认的httpClient实例.PublicSuffixMatcher publicSuffixMatcher = PublicSuffixMatcherLoader.load(new URL(httpGet.getURI().toString()));DefaultHostnameVerifier hostnameVerifier = new DefaultHostnameVerifier(publicSuffixMatcher);httpClient = HttpClients.custom().setSSLHostnameVerifier(hostnameVerifier).build();httpGet.setConfig(requestConfig);// 执行请求response = httpClient.execute(httpGet);entity = response.getEntity();responseContent = EntityUtils.toString(entity, "UTF-8");} catch (Exception e) {e.printStackTrace();} finally {try {// 关闭连接,释放资源if (response != null) {response.close();}if (httpClient != null) {httpClient.close();}} catch (IOException e) {e.printStackTrace();}}return responseContent;}public static void main(String[] args) throws ClientProtocolException,IOException {HttpPost post = new HttpPost("https://cas.sf-express.com/cas/login?service=http%3A%2F%2Fhos.sf-express.com%2Findex.pub&apptiket=dbe979f1b41f6ea2d2f732c43abd793a18cf829000ed010c");HttpClient client = HttpClients.createDefault();HttpResponse resp = client.execute(post);HttpEntity entity = resp.getEntity();System.out.println(entity.toString());}}

0 0
原创粉丝点击