HttpComponents之httpclient基本使用方法
来源:互联网 发布:原生js模拟select 编辑:程序博客网 时间:2024/06/14 06:46
第一种方式
package http;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;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.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class HttpClient2 { public static void main(String args[]) throws IOException { List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("account", "")); formparams.add(new BasicNameValuePair("password", "")); HttpEntity reqEntity = new UrlEncodedFormEntity(formparams, "utf-8"); RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(5000) .setConnectTimeout(5000) .setConnectionRequestTimeout(5000) .build(); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://cnivi.com.cn/login"); post.setEntity(reqEntity); post.setConfig(requestConfig); HttpResponse response = client.execute(post); if (response.getStatusLine().getStatusCode() == 200) { HttpEntity resEntity = response.getEntity(); String message = EntityUtils.toString(resEntity, "utf-8"); System.out.println(message); } else { System.out.println("请求失败"); } }}
第二种方式
这种方式是用了一个http的连接池,同时使用httpbuilder构造合适的http方法。
package http;import org.apache.http.HttpEntity;import org.apache.http.HttpHost;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.HttpUriRequest;import org.apache.http.client.methods.RequestBuilder;import org.apache.http.conn.routing.HttpRoute;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.impl.client.HttpClients;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import java.io.IOException;import java.util.*;public class HttpClientUtils { private static PoolingHttpClientConnectionManager connectionManager = null; private static HttpClientBuilder httpBulder = null; private static RequestConfig requestConfig = null; private static int MAXCONNECTION = 10; private static int DEFAULTMAXCONNECTION = 5; private static String IP = "cnivi.com.cn"; private static int PORT = 80; static { //设置http的状态参数 requestConfig = RequestConfig.custom() .setSocketTimeout(5000) .setConnectTimeout(5000) .setConnectionRequestTimeout(5000) .build(); HttpHost target = new HttpHost(IP, PORT); connectionManager = new PoolingHttpClientConnectionManager(); connectionManager.setMaxTotal(MAXCONNECTION); connectionManager.setDefaultMaxPerRoute(DEFAULTMAXCONNECTION); connectionManager.setMaxPerRoute(new HttpRoute(target), 20); httpBulder = HttpClients.custom(); httpBulder.setConnectionManager(connectionManager); } public static CloseableHttpClient getConnection() { CloseableHttpClient httpClient = httpBulder.build(); httpClient = httpBulder.build(); return httpClient; } public static HttpUriRequest getRequestMethod(Map<String, String> map, String url, String method) { List<NameValuePair> params = new ArrayList<NameValuePair>(); Set<Map.Entry<String, String>> entrySet = map.entrySet(); for (Map.Entry<String, String> e : entrySet) { String name = e.getKey(); String value = e.getValue(); NameValuePair pair = new BasicNameValuePair(name, value); params.add(pair); } HttpUriRequest reqMethod = null; if ("post".equals(method)) { reqMethod = RequestBuilder.post().setUri(url) .addParameters(params.toArray(new BasicNameValuePair[params.size()])) .setConfig(requestConfig).build(); } else if ("get".equals(method)) { reqMethod = RequestBuilder.get().setUri(url) .addParameters(params.toArray(new BasicNameValuePair[params.size()])) .setConfig(requestConfig).build(); } return reqMethod; } public static void main(String args[]) throws IOException { Map<String, String> map = new HashMap<String, String>(); map.put("account", ""); map.put("password", ""); HttpClient client = getConnection(); HttpUriRequest post = getRequestMethod(map, "http://cnivi.com.cn/login", "post"); HttpResponse response = client.execute(post); if (response.getStatusLine().getStatusCode() == 200) { HttpEntity entity = response.getEntity(); String message = EntityUtils.toString(entity, "utf-8"); System.out.println(message); } else { System.out.println("请求失败"); } }}
博文转自:https://my.oschina.net/xinxingegeya/blog/282683
阅读全文
0 0
- HttpComponents之httpclient基本使用方法
- httpcomponents之httpclient发送http请求
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- Android HttpClient基本使用方法
- HttpClient类包基本使用方法
- Android HttpClient,httpPost基本使用方法
- HttpClient类包基本使用方法
- HttpClient androidStudio基本的使用方法
- HttpComponents组件探究 - HttpClient篇
- HttpComponents组件探究 - HttpClient篇
- HttpClient与httpComponents、HttpPost、HttpGet
- Android之HttpClient的使用方法
- Unity架构之路-小试牛刀-3-TimerManager
- Chrome表单自动填充如何取消
- 数据挖掘-FP-tree算法
- linux里面解压LZO
- android .9 图重新编辑报错wenti
- HttpComponents之httpclient基本使用方法
- CSS3边框 圆角 阴影,旋转
- 华为USG6000系列防火墙的Console密码重置过程
- 趣图丨IT从业者的压力究竟有多大?
- numpy学习笔记
- 嵌入式 hi3518a平台多编码通道同时绑定OSD实现以及反色实现
- 为什么技术与产品沟通起来总是那么痛苦
- NavigationView使用详解
- 我的故事丨一个女程序员的自述