httpUtil
来源:互联网 发布:rimworld a17 mac 编辑:程序博客网 时间:2024/06/05 20:56
import java.io.Closeable;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.net.ssl.SSLContext;import org.apache.commons.collections.MapUtils;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpEntity;import org.apache.http.HttpMessage;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.ParseException;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.HttpDelete;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpPut;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.ssl.SSLContexts;import org.apache.http.util.EntityUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HttpsUtil { private static final Logger LOG = LoggerFactory.getLogger(HttpsUtil.class); public static final String CHARACTER_ENCODING = "UTF-8"; public static final String CONTENT_TYPE = "Content-Type"; public static final int CONNECTION_TIMEOUT = 10000; public static final int SO_TIMEOUT = 30000; public HttpsUtil() { } public static HttpsUtil.HttpResponseWrapper requestGetMethod(String url, Map<String, String> requestParas) { CloseableHttpClient httpClient = getCloseableHttpClient(url); try { StringBuffer e = new StringBuffer(url); if(MapUtils.isNotEmpty(requestParas)) { StringBuffer httpGet = new StringBuffer(); Iterator response = requestParas.keySet().iterator(); while(response.hasNext()) { String key = (String)response.next(); httpGet.append(key); httpGet.append("="); httpGet.append((String)requestParas.get(key)); httpGet.append("&"); } httpGet.setLength(httpGet.length() - 1); if(url.contains("?")) { e.append("&"); } else { e.append("?"); } e.append(httpGet.toString()); } HttpGet httpGet1 = new HttpGet(e.toString()); CloseableHttpResponse response1 = httpClient.execute(httpGet1); return new HttpsUtil.HttpResponseWrapper(httpClient, response1); } catch (IOException var7) { var7.printStackTrace(); return null; } } private static CloseableHttpClient getCloseableHttpClient(String url) { CloseableHttpClient httpClient = null; if(url.startsWith("https://")) { httpClient = createHttpsClient(); } else { httpClient = createHttpClient(); } return httpClient; } public static HttpsUtil.HttpResponseWrapper requestPostMethod(String url, Map<String, String> requestParas) { return requestPostMethod(url, (Map)null, requestParas, "UTF-8", (String)null); } public static HttpsUtil.HttpResponseWrapper requestPostMethod(String url, Map<String, String> requestHeaders, Map<String, String> requestParas, String requestCharacter, String xForWardedFor) { CloseableHttpClient httpClient = getCloseableHttpClient(url); HttpPost httpPost = new HttpPost(url); try { if(StringUtils.isNotEmpty(xForWardedFor)) { httpPost.addHeader("X-Forwarded-For", xForWardedFor); } initHeader(httpPost, requestHeaders); if(MapUtils.isNotEmpty(requestParas)) { List e = initNameValuePair(requestParas); httpPost.setEntity(new UrlEncodedFormEntity(e, requestCharacter)); } CloseableHttpResponse e1 = httpClient.execute(httpPost); return new HttpsUtil.HttpResponseWrapper(httpClient, e1); } catch (IOException var8) { var8.printStackTrace(); return null; } } private static void initHeader(HttpMessage httpPost, Map<String, String> requestHeaders) { if(MapUtils.isNotEmpty(requestHeaders)) { Iterator var2 = requestHeaders.keySet().iterator(); while(var2.hasNext()) { String key = (String)var2.next(); httpPost.addHeader(key, (String)requestHeaders.get(key)); } } } public static HttpsUtil.HttpResponseWrapper requestPostMethod(String url, Map<String, String> requestParas, String requestCharacter, String xForWardedFor) { return requestPostMethod(url, (Map)null, requestParas, requestCharacter, (String)null); } public static HttpsUtil.HttpResponseWrapper requestPutMethod(String url, Map<String, String> requestParas, String requestCharacter) { CloseableHttpClient httpClient = getCloseableHttpClient(url); HttpPut httpPut = new HttpPut(url); try { if(MapUtils.isNotEmpty(requestParas)) { List e = initNameValuePair(requestParas); httpPut.setEntity(new UrlEncodedFormEntity(e, requestCharacter)); } CloseableHttpResponse e1 = httpClient.execute(httpPut); return new HttpsUtil.HttpResponseWrapper(httpClient, e1); } catch (IOException var6) { var6.printStackTrace(); return null; } } public static HttpsUtil.HttpResponseWrapper requestDeleteMethod(String url) { CloseableHttpClient httpClient = getCloseableHttpClient(url); HttpDelete httpDelete = new HttpDelete(url); try { CloseableHttpResponse ex = httpClient.execute(httpDelete); return new HttpsUtil.HttpResponseWrapper(httpClient, ex); } catch (IOException var4) { var4.printStackTrace(); return null; } } public static List<NameValuePair> initNameValuePair(Map<String, String> params) { ArrayList formParams = new ArrayList(); if(params != null && params.size() > 0) { ArrayList keys = new ArrayList(params.keySet()); Collections.sort(keys); Iterator var3 = keys.iterator(); while(var3.hasNext()) { String key = (String)var3.next(); formParams.add(new BasicNameValuePair(key, (String)params.get(key))); } } return formParams; } private void close(CloseableHttpClient httpClient) { if(httpClient != null) { try { httpClient.close(); } catch (IOException var3) { var3.printStackTrace(); } } } public static CloseableHttpClient createHttpsClient() { return createHttpsClient(10000, 30000); } public static CloseableHttpClient createHttpsClient(int connectionTimeout, int soTimeout) { SSLContext sslcontext = SSLContexts.createDefault(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, (String[])null, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT).setConnectTimeout(connectionTimeout).setSocketTimeout(soTimeout).build(); CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).setDefaultRequestConfig(requestConfig).build(); return httpclient; } public static CloseableHttpClient createHttpClient() { return createHttpsClient(10000, 30000); } public static CloseableHttpClient createHttpClient(int connectionTimeout, int soTimeout) { RequestConfig requestConfig = RequestConfig.copy(RequestConfig.DEFAULT).setConnectTimeout(connectionTimeout).setSocketTimeout(soTimeout).build(); CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build(); return httpclient; } public static void main(String[] args) throws IOException { String url = "https://www.baidu.com/"; HashMap maps = new HashMap(); maps.put("name", "11111"); HttpsUtil.HttpResponseWrapper wrapper = requestGetMethod(url, (Map)null); System.out.println(wrapper.getResponseString()); wrapper.close(); } public static class HttpResponseWrapper implements Closeable { private HttpResponse httpResponse; private HttpClient httpClient; public HttpResponseWrapper(HttpClient httpClient, HttpResponse httpResponse) { this.httpClient = httpClient; this.httpResponse = httpResponse; } public HttpResponseWrapper(HttpClient httpClient) { this.httpClient = httpClient; } public HttpResponse getHttpResponse() { return this.httpResponse; } public void setHttpResponse(HttpResponse httpResponse) { this.httpResponse = httpResponse; } public InputStream getResponseStream() throws IllegalStateException, IOException { return this.httpResponse.getEntity().getContent(); } public String getResponseString(String responseCharacter) throws ParseException, IOException { HttpEntity entity = this.getEntity(); String responseStr = EntityUtils.toString(entity, responseCharacter); if(entity.getContentType() == null) { responseStr = new String(responseStr.getBytes("iso-8859-1"), responseCharacter); } EntityUtils.consume(entity); return responseStr; } public String getResponseString() throws ParseException, IOException { return this.getResponseString("UTF-8"); } public int getStatusCode() { return this.httpResponse.getStatusLine().getStatusCode(); } public int getStatusCodeAndClose() { this.close(); return this.getStatusCode(); } public HttpEntity getEntity() { return this.httpResponse.getEntity(); } public void close() { if(this.httpClient instanceof CloseableHttpClient) { try { ((CloseableHttpClient)this.httpClient).close(); } catch (IOException var2) { var2.printStackTrace(); } } } }}
0 0
- HttpUtil
- HttpUtil
- httputil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- httpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil
- HttpUtil工具
- httpclient -HttpUtil
- 大数A+B<hdoj1002>
- UIWebView和Js交互(传值)
- 分类算法之朴素贝叶斯分类(Naive Bayesian classification)
- Java中如何解决double和float精度不准的问题
- XMLBEANS的使用总结
- httpUtil
- Android Spinner 放在PopupWindow 点击报错
- 大文件上传实现
- 字符串——找到被指的新类型字符
- 从原理上搞定编码-- Base64编码
- Leetcode 14. Longest Common Prefix (Easy) (cpp)
- 用Castor 处理XML文档
- C语言sscanf函数的总结
- 暑期集训第二周---搜索