Httpclient发送http请求
来源:互联网 发布:百卓优采软件 编辑:程序博客网 时间:2024/06/05 05:24
1.引入httpclient 所需要的jars
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version></dependency><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.2</version></dependency>
2.实现HttpConnectionManager,里面有连接池保存连接。
package ****.httpclient;import java.security.NoSuchAlgorithmException;import javax.annotation.PostConstruct;import javax.net.ssl.SSLContext;import org.apache.http.config.Registry;import org.apache.http.config.RegistryBuilder;import org.apache.http.conn.socket.ConnectionSocketFactory;import org.apache.http.conn.socket.LayeredConnectionSocketFactory;import org.apache.http.conn.socket.PlainConnectionSocketFactory;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.impl.conn.PoolingHttpClientConnectionManager;import org.springframework.stereotype.Component;@Component("httpConnectionManager")public class HttpConnectionManager { PoolingHttpClientConnectionManager cm = null; @PostConstruct public void init() { LayeredConnectionSocketFactory sslsf = null; try { sslsf = new SSLConnectionSocketFactory(SSLContext.getDefault()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create() .register("https", sslsf) .register("http", new PlainConnectionSocketFactory()) .build(); cm =new PoolingHttpClientConnectionManager(socketFactoryRegistry); cm.setMaxTotal(200); cm.setDefaultMaxPerRoute(20); } public CloseableHttpClient getHttpClient() { CloseableHttpClient httpClient = HttpClients.custom() .setConnectionManager(cm) .build(); /*CloseableHttpClient httpClient = HttpClients.createDefault();//如果不采用连接池就是这种方式获取连接*/ return httpClient; }}
3.实现HttpClientUtil
package *****.httpclient;import java.io.File;import java.io.IOException;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.ClientProtocolException;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.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.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Component("httpClientUtil")public class HttpClientUtil { @Autowired private HttpConnectionManager httpConnectionManager; /** * 发送 post请求 * @param httpUrl 地址 * @throws IOException * @throws ClientProtocolException */ public String sendHttpPost(String httpUrl) throws ClientProtocolException, IOException { HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost return sendHttpPost(httpPost); } /** * 发送 post请求 * @param httpUrl 地址 * @param params 参数(格式:key1=value1&key2=value2) * @throws IOException * @throws ClientProtocolException */ public String sendHttpPost(String httpUrl, String params) throws ClientProtocolException, IOException { HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost //设置参数 StringEntity stringEntity = new StringEntity(params, "UTF-8"); stringEntity.setContentType("application/x-www-form-urlencoded"); httpPost.setEntity(stringEntity); return sendHttpPost(httpPost); } /** * 发送 post请求 * @param httpUrl 地址 * @param maps 参数 * @throws IOException * @throws ClientProtocolException */ public String sendHttpPost(String httpUrl, Map<String, String> maps) throws ClientProtocolException, IOException { 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))); } httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); return sendHttpPost(httpPost); } /** * 发送 post请求(带文件) * @param httpUrl 地址 * @param maps 参数 * @param fileLists 附件 * @throws IOException * @throws ClientProtocolException */ public String sendHttpPost(String httpUrl, Map<String, String> maps, List<File> fileLists) throws ClientProtocolException, IOException { 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 * @throws IOException * @throws ClientProtocolException */ private String sendHttpPost(HttpPost httpPost) throws ClientProtocolException, IOException { CloseableHttpClient httpClient = httpConnectionManager.getHttpClient(); CloseableHttpResponse response=null; response = httpClient.execute(httpPost); HttpEntity entity = null; String responseContent = null; // 执行请求 entity = response.getEntity(); responseContent = EntityUtils.toString(entity, "UTF-8"); return responseContent; } /** * 发送 get请求 * @param httpUrl * @throws IOException * @throws ClientProtocolException */ public String sendHttpGet(String httpUrl) throws ClientProtocolException, IOException { HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求 return sendHttpGet(httpGet); } /** * 发送Get请求 * @param httpPost * @return * @throws IOException * @throws ClientProtocolException */ private String sendHttpGet(HttpGet httpGet) throws ClientProtocolException, IOException { CloseableHttpClient httpClient = httpConnectionManager.getHttpClient(); CloseableHttpResponse response=null; HttpEntity entity = null; String responseContent = null; // 执行请求 response = httpClient.execute(httpGet); entity = response.getEntity(); responseContent = EntityUtils.toString(entity, "UTF-8"); return responseContent; } }
4.调用HttpClientUtil里面的方法。
0 0
- httpClient 发送 http请求
- HTTPClient发送http请求
- HttpClient 发送HTTP请求
- Httpclient发送http请求
- HttpClient发送HTTP请求
- HttpClient模拟发送http请求
- HttpClient 发送 HTTP、HTTPS 请求
- HttpClient发送HTTP请求详解
- 使用HttpClient发送Post Http请求
- 使用HttpClient发送Post Http请求
- 使用apache HttpClient发送Http请求
- 使用HttpClient发送Post Http请求
- 使用HttpClient发送Post Http请求
- java发送http请求(URL、HttpClient)
- httpcomponents之httpclient发送http请求
- 使用HttpClient发送Post Http请求
- HttpClient发送http请求以及上传文件
- Java类实现发送Http请求(HttpClient)
- table学习笔记
- 建造者模式
- sort()
- 中国剩余定理
- 表达式求值
- Httpclient发送http请求
- Angular开发者指南(一)入门介绍
- NSIS总脚本代码参考
- 《Head First JAVA》学习笔记(一)
- hdu5950
- JAVA设计模式之工厂模式
- 输出错误信息与调试信息
- iOS10 不自动弹出询问是否允许使用蜂窝数据的解决方法
- Android自定义控件系列(六)—优雅的实现广告轮播图