HttpClient Study Notes

文章目录

  • 1 文章构建
  • 2 HttpClient
    • 2.1 HttpClient介绍
    • 2.2 HttpClient应用场景
    • 2.3 HttpClient API与请求步骤
      • 2.3.1 HttpClient 核心API
      • 2.3.2 HttpClient 发送请求步骤
    • 2.4 入门案例
      • 2.4.1 引入aliyun-sdk-oss Maven坐标
      • 2.4.2 GET方式请求
      • 2.4.3 POST方式请求
    • 2.5 后端端向微信登录接口发送请求HttpClient 示例

1 文章构建

文章从什么是HttpClientHttpClient应用场景HttpClient优缺点入手浅谈HttpClient相关概念。

2 HttpClient

2.1 HttpClient介绍

介绍:HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供支持 HTTP 协议的客户端编程工具包,

如:可以在Java程序中发送http请求,以前都是客户端发送向java后端发送请求
HttpClient Study Notes_第1张图片

2.2 HttpClient应用场景

HttpClient Study Notes_第2张图片
在java程序中可以向微信支付、或者地图服务发送相关请求。

2.3 HttpClient API与请求步骤

2.3.1 HttpClient 核心API

API 介绍
HttpClient Http客户端对象类型,使用该类型对象可发起Http请求。
HttpClients 构建器,创建HttpClient对象。
CloseableHttpClient 实现类,实现了HttpClient接口
HttpGet Get方式请求类型
HttpPost Post方式请求类型

2.3.2 HttpClient 发送请求步骤

  • 创建HttpClient对象
  • 创建Http请求对象
  • 调用HttpClient的execute方法发送请求

2.4 入门案例

2.4.1 引入aliyun-sdk-oss Maven坐标

<dependency>
    <groupId>com.aliyun.ossgroupId>
    <artifactId>aliyun-sdk-ossartifactId>
dependency>

2.4.2 GET方式请求

实现步骤:
1. 创建HttpClient对象
2. 创建请求对象
3. 发送请求,接受响应结果
4. 解析结果
5. 关闭资源

 /**
     * 测试通过httpclient发送GET方式的请求
     *
     * @throws Exception
     */
    @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);

        //接收返回回来的body体数据
        HttpEntity entity = response.getEntity();
        String body = EntityUtils.toString(entity);
        System.out.println("服务端返回的数据为:" + body);

        //关闭资源
        response.close();
        httpClient.close();
    }

返回结果:
HttpClient Study Notes_第3张图片

2.4.3 POST方式请求

实现步骤:
1. 创建HttpClient对象
2. 创建请求对象
3. 发送请求,接受响应结果
4. 解析响应结果
5. 关闭资源

  /**
     * 测试通过httpclient发送post方式的请求
     * @throws Exception
     */
    @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 stringEntity = new StringEntity(jsonObject.toString());
        //指定请求编码方法
        stringEntity.setContentEncoding("utf-8");
        //数据格式
        stringEntity.setContentType("application/json"); //post提交数据方式为JSON
        httpPost.setEntity(stringEntity);

        //发送请求
        CloseableHttpResponse response = httpClient.execute(httpPost);

        //解析返回结果
        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();
    }

返回结果:
在这里插入图片描述

2.5 后端端向微信登录接口发送请求HttpClient 示例

详细参考:WeChat小程序·微信登录·开发参考文档

 String json = HttpClientUtil.doGet(WX_LOGIN,map);//把map集合通过http请求,传给微信接口服务,获取用户微信登录小程序时的用户openid,以进行后继操作

你可能感兴趣的:(java,servlet,开发语言,httpclient)