HttpClient

目录

1.介绍

2.引入依赖

3.核心 API :

4.发送请求步骤:

5.get方式请求

6.post方式请求

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();
    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值