苍穹外卖学习笔记(十一)

一. HttpClient

介绍

HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

xml 复制代码
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.14</version>
</dependency>

该项目导入了阿里的sdk,传递依赖
核心API:

  1. HttpClient
  2. HttpClients
  3. CloseableHttpClient
  4. HttpGet
  5. HttpPost

发生请求步骤:

  1. 创建HttpClient对象
  2. 创建Http请求对象
  3. 调用HttpClient的execute方法发送请求

入门案例

HttpClientTest.java

java 复制代码
package com.sky.test;

import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class HttpClientTest {

    /**
     * 测试HttpClient发送get请求
     */
    @Test
    public void testGet() {
        // 创建HttpClient对象
        CloseableHttpClient aDefault = HttpClients.createDefault();
        // 创建HttpGet对象
        HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");
        // 发送请求
        try {
            CloseableHttpResponse execute = aDefault.execute(httpGet);
            // 获取响应数据
            int statusCode = execute.getStatusLine().getStatusCode();
            System.out.println("状态码:" + statusCode);
            HttpEntity entity = execute.getEntity();
            String string = EntityUtils.toString(entity);
            System.out.println("响应数据:" + string);

            // 关闭资源
            execute.close();
            aDefault.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    /**
     * 测试HttpClient发送post请求
     */
    @Test
    public void testPost() throws Exception {
        // 创建HttpClient对象
        CloseableHttpClient aDefault = HttpClients.createDefault();
        // 创建HttpPost对象
        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(jsonObject.toString());
        // 设置请求头
        entity.setContentEncoding("UTF-8");
        // 设置请求体
        entity.setContentType("application/json");
        httpPost.setEntity(entity);
        // 发送请求
        CloseableHttpResponse execute = aDefault.execute(httpPost);
        // 获取响应数据
        int statusCode = execute.getStatusLine().getStatusCode();
        System.out.println("状态码:" + statusCode);
        HttpEntity entity1 = execute.getEntity();
        String string = EntityUtils.toString(entity1);
        System.out.println("响应数据:" + string);

        // 关闭资源
        execute.close();
        aDefault.close();
    }
}
相关推荐
m0_736034853 小时前
1.28笔记
前端·chrome·笔记
丝斯20113 小时前
AI学习笔记整理(63)——大模型对齐与强化学习
人工智能·笔记·学习
了一梨4 小时前
SQLite3学习笔记4:打开和关闭数据库 + 创建表(C API)
数据库·学习·sqlite
bekote7 小时前
mybatis-plus-generator模版
mybatis
阿蒙Amon8 小时前
TypeScript学习-第1章:入门
javascript·学习·typescript
开发者小天9 小时前
python中For Loop的用法
java·服务器·python
flushmeteor9 小时前
JDK源码-基础类-String
java·开发语言
毕设源码-钟学长9 小时前
【开题答辩全过程】以 基于ssm的空中停车场管理系统为例,包含答辩的问题和答案
java
不愿是过客10 小时前
java实战干货——长方法深递归
java
奥特曼_ it10 小时前
【数据分析+机器学习】基于机器学习的招聘数据分析可视化预测推荐系统(完整系统源码+数据库+开发笔记+详细部署教程)✅
笔记·数据挖掘·数据分析