目录
1.介绍
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。(客户端编程工具包:可以在java程序通过httpClient构造http请求,并发送http请求)
一句话介绍:在java中可以通过编码的方式发送http请求
2.引入依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
3.核心 API :
• HttpClient : http客户端,是一个接口,发送一个http请求
• HttpClients : 创建一个httpclient对象
• CloseableHttpClient : 具体的实现类,实现了HttpClient接口
• HttpGet : http的get请求
• HttpPost: http的post请求
4.发送请求步骤:
• 创建 HttpClient 对象
• 创建 Http 请求对象: 是以什么方式发送请求
• 调用 HttpClient 的 execute 方法发送请求
5.get方式请求
/**
* 测试通过httpclient发送get方式的请求
*/
@Test
public void testGET() throws Exception{
//创建httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
//创建请求对象
HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");
//发送请求,接收响应结果
CloseableHttpResponse response = httpClient.execute(httpGet);
//获取服务端返回的状态码
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("服务端返回的状态码为:" + statusCode);
HttpEntity entity = response.getEntity();//获取服务器端返回的响应体
String body = EntityUtils.toString(entity);//解析响应体
System.out.println("服务端返回的数据为: " + body);
//关闭资源
response.close();
httpClient.close();
}
6.post方式请求
/**
* 测试通过heepclient发送post方式的请求
*/
@Test
public void testPOST() throws Exception{
//创建httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
//创建请求对象
HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");
JSONObject jsonObject = new JSONObject();
jsonObject.put("username","admin");
jsonObject.put("password","123456");
// StringEntity entity = new StringEntity("{username:'',password:''}");//StringEntity是HttpClient的实现类,传入的是json字符串
StringEntity entity = new StringEntity(jsonObject.toString());//把json对象转成json字符串
//指定请求编码方式
entity.setContentEncoding("utf-8");
//指定传输的数据格式
entity.setContentType("application/json");//请求提交过来的是json数据
httpPost.setEntity(entity);//将构造的请求数据封装到httpPost
//发送请求
CloseableHttpResponse response = httpClient.execute(httpPost);
//解析返回结果
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("响应码为: " + statusCode);
HttpEntity entity1 = response.getEntity();
String body = EntityUtils.toString(entity1);
System.out.println("响应数据为:" + body);
//关闭资源
response.close();
httpClient.close();
}
1577

被折叠的 条评论
为什么被折叠?



