一:HttpClient简介

1.:由 apache 推出的实现使用 java 代码完成请求/响应的一套 API

2:实现效果:模拟浏览器发送请求及解析响应内容

3.:常用类

CloseableHttpClient :负责发送请求和接收响应.相当于浏览器
HttpPost:Post请求对象,所有请求信息都放入到这个对象中
HttpGet:get请求对象,所有请求信息都放入到这个对象中
CloseableHttpResponse:响应对象,所有响应信息放入到这个类
EntityUtils:工具类,解析响应体

二:测试代码

1:maven依赖

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.4.1</version>
</dependency>

2:get请求

2.1:不带参数

  public void doGet() throws Exception {
	//创建一个httpclient对象
	CloseableHttpClient httpClient = HttpClients.createDefault();
	//创建一个GET对象
	HttpGet get = new HttpGet("http://www.sogou.com");
	//执行请求
	CloseableHttpResponse response = httpClient.execute(get);
	//取响应的结果
	int statusCode = response.getStatusLine().getStatusCode();
	System.out.println(statusCode);
	HttpEntity entity = response.getEntity();
	String string = EntityUtils.toString(entity, "utf-8");
	System.out.println(string);
	//关闭httpclient
	response.close();
	httpClient.close();
}

2.2:带参数

public void doGetWithParam() throws Exception{
	//创建一个httpclient对象
	CloseableHttpClient httpClient = HttpClients.createDefault();
	//创建一个uri对象
	URIBuilder uriBuilder = new URIBuilder("http://www.sogou.com/web");
	uriBuilder.addParameter("query", "花千骨");
	HttpGet get = new HttpGet(uriBuilder.build());
	//执行请求
	CloseableHttpResponse response = httpClient.execute(get);
	//取响应的结果
	int statusCode = response.getStatusLine().getStatusCode();
	System.out.println(statusCode);
	HttpEntity entity = response.getEntity();
	String string = EntityUtils.toString(entity, "utf-8");
	System.out.println(string);
	//关闭httpclient
	response.close();
	httpClient.close();
}

3:post请求

3.1:不带参数

public void doPost() throws Exception {
	CloseableHttpClient httpClient = HttpClients.createDefault();
	//创建一个post对象
	HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html");
	//执行post请求
	CloseableHttpResponse response = httpClient.execute(post);
	String string = EntityUtils.toString(response.getEntity());
	System.out.println(string);
	response.close();
	httpClient.close();		
}

3.2:带参数

public void doPostWithParam() throws Exception{
	CloseableHttpClient httpClient = HttpClients.createDefault();	
	//创建一个post对象
	HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html");
	//创建一个Entity。模拟一个表单
	List<NameValuePair> kvList = new ArrayList<>();
	kvList.add(new BasicNameValuePair("username", "zhangsan"));
	kvList.add(new BasicNameValuePair("password", "123"));
	//包装成一个Entity对象
	StringEntity entity = new UrlEncodedFormEntity(kvList, "utf-8");
	//设置请求的内容
	post.setEntity(entity);
	//执行post请求
	CloseableHttpResponse response = httpClient.execute(post);
	String string = EntityUtils.toString(response.getEntity());
	System.out.println(string);
	response.close();
	httpClient.close();
}

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐