java httpcomponents_HttpComponents之httpclient基本使用方法

httpclient的版本是4.3

第一种方式

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 formparams = new ArrayList();

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 map, String url, String method) {

List params = new ArrayList();

Set> entrySet = map.entrySet();

for (Map.Entry 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 map = new HashMap();

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("请求失败");

}

}

}

=============END=============

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值