HttpClient简单封装及使用
来源:互联网 发布:基于代理模型的优化 编辑:程序博客网 时间:2024/06/04 19:50
1:所需jar包,下载地址http://hc.apache.org/downloads.cgi
2:封装类
package com.java.test;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.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.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);// 创建httpPost return sendHttpPost(httpPost); } /** * 发送 post请求 * @param httpUrl 地址 * @param params 参数(格式:key1=value1&key2=value2) */ public String sendHttpPost(String httpUrl, String params) { HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost try { //设置参数 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);// 创建httpPost MultipartEntityBuilder 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; } }
package com.java.test;import java.util.HashMap;import java.util.Map;public class Test01 { /** * url拼接参数 * */ public static void test01(){ String responseContent = HttpClientUtil.getInstance() .sendHttpPost("http://127.0.0.1:8090/activeAction!queryList.action?sj=13901828800"); System.out.println("reponse content:" + responseContent); } /** * 多个参数 * */ public static void test02(){ String responseContent = HttpClientUtil.getInstance() .sendHttpPost("http://127.0.0.1:8090/activeAction!queryList.action", "sj=13901828800"); System.out.println("reponse content:" + responseContent); } /** * map参数 * */ public static void test03(){ Map<String, String> maps = new HashMap<String, String>(); maps.put("sj", "13901828800"); String responseContent = HttpClientUtil.getInstance() .sendHttpPost("http://127.0.0.1:8090/activeAction!queryList.action", maps); System.out.println("reponse content:" + responseContent); } /** * get * */ public static void test04(){ String responseContent = HttpClientUtil.getInstance().sendHttpGet ("http://127.0.0.1:8090/activeAction!queryList.action?sj=13901828800"); System.out.println("reponse content:" + responseContent); } public static void test05(){ String responseContent = HttpClientUtil.getInstance().sendHttpGet ("https://www.baidu.com"); System.out.println("reponse content:" + responseContent); } public static void main(String[] args) { //test01(); //test02(); //test03(); //test04(); test05(); } }
阅读全文
0 0
- HttpClient简单封装及使用
- 简单封装的httpclient
- okhttp简单封装及使用
- DomDocument使用及简单封装
- 使用CURL封装HttpClient
- libghttp安装及使用封装案例(httpClient)
- HttpClient 框架的简单封装
- okhttp3 使用详解及简单封装
- OkHttp简单的封装及使用
- Picasso的简单使用及封装
- HttpClient的使用和封装
- HttpClient的简单使用
- HttpClient的简单使用
- HttpClient最简单使用
- HttpClient的简单使用
- HttpClient的简单使用
- HttpClient简单使用记录
- commons-httpclient简单使用
- PAT 1067 试密码
- 为什么学习Markdown
- libjpeg-turbo的安装与使用
- 2017 Multi-University Training Contest
- Qt中的unicode转换
- HttpClient简单封装及使用
- 使用xhtmlrenderer把html转换为PDF后右侧内容不显示
- ALV动态列Demo
- 一周例会后的杂感
- 线性筛(同时得到欧拉函数和素数表)
- MyEclipse打包Maven项目 Run as 命令
- file文件下载操作【练习】
- app内切换语言
- ajax post 服务器用request.getParameter("")拿不到值