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

一. 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();
    }
}
相关推荐
leikooo9 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
Ivanqhz10 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
by2099910 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
沙漠之主10 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
FPGA小徐10 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
青柠之夏cc11 小时前
AI与教育:个性化学习助手让“因材施教“成为现实,但代价是隐私?
人工智能·学习
YOLO数据集集合11 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化
知行EDI11 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
笑鸿的学习笔记11 小时前
C++笔记之大块顺序写
java·c++·笔记
for_ever_love__11 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归