OkHttp接口自动化测试

embedded/2025/1/8 0:54:54/
http://www.w3.org/2000/svg" style="display: none;">

文章目录

  • java环境搭建
  • OkHttp之get
  • OkHttp之POST
    • POST发送From表单
    • POST发送json
    • POST上传文件
  • OkHttp之delete
  • OkHttp之put

java_1">java环境搭建

  • 引入依赖
<!--http>okhttp3--><dependency><groupId>com.squareup.http>okhttp3</groupId><artifactId>http>okhttp</artifactId><version>4.9.0</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency>

OkHttp之get

  • 基本语法格式
java">	// 1.创建一个OkHttpClientOkHttpClient okHttpClient = new OkHttpClient();// 2.创建一个Request  (对应的数据:url、请求数据)Request request = new Request.Builder().url("https://www.baidu.com").build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();    // 5.关闭连接response.close();

https://i-blog.csdnimg.cn/direct/a65f9d44cf024dd7b2aff74008d040db.png" alt="在这里插入图片描述" />

OkHttp之POST

POST发送From表单

  • post请求
java">package interfaceTest;import http>okhttp3.*;import java.io.IOException;public class PostDemo {public static void main(String[] args) throws IOException {// 1.创建一个OkHttpClient  (发送请求)OkHttpClient okHttpClient = new OkHttpClient();// 2.创建一个Request  (对应的数据:url、请求数据)// 构造请求参数RequestBody requestBody = new FormBody.Builder().add("username", "zhangsan")  // 用户名.add("password", "123456") // 密码.build();Request request = new Request.Builder().url("http://127.0.0.1:8080/login").post(requestBody).build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();if(response.isSuccessful()) {System.out.println("请求成功");System.out.println(result);}// 5.关闭连接response.close();}
}

https://i-blog.csdnimg.cn/direct/12d246046f194ebdaecbfabf3af43f19.png" alt="在这里插入图片描述" />
在body中,需要主要数据格式
以下是一个常见的Content-Type(内容类型)与请求体(body)对应关系示例图表,主要涵盖了几种常见的在网络请求等场景中会用到的类型:

Content-Type描述示例 Body 格式
application/json用于表示数据以 JSON 格式传输,常用于 RESTful API 交互等场景。{"name": "John", "age": 30, "city": "New York"}(JSON 对象形式,包含键值对)
application/x-www-form-urlencoded数据被编码成键值对形式,类似 URL 查询字符串的格式,常用于 HTML 表单提交(传统方式)。name=John&age=30&city=New York(键值对用 & 连接,键和值之间用 = 连接)
multipart/form-data常用于在一个请求中同时上传文件和包含其他表单数据,它把不同类型的数据分成多个部分来传输。以下是一个简单示例,包含文本和文件两部分:
--boundary_string
Content-Disposition: form-data; name=“text_data”

Some text here
–boundary_string
Content-Disposition: form-data; name=“file”; filename=“example.txt”
Content-Type: text/plain

[文件内容,此处省略具体文本展示]
–boundary_string-- (其中 boundary_string 是用于分隔各部分的边界字符串,会自动生成)
text/plain表示纯文本格式,常用于简单的文本数据传输。This is a simple text message(就是普通的文本内容)

你可以根据实际使用场景进行参考,不同的应用场景和开发框架中,具体的使用细节和规则可能会有一定差异。

https://i-blog.csdnimg.cn/direct/bbd511c736d14ec79216ed0718b792ad.png" alt="在这里插入图片描述" />

POST发送json

  • POST发送json格式
java">package interfaceTest;import http>okhttp3.*;import java.io.IOException;// 通过post发送json格式的数据    
public class PostAddChartDemo {public static void main(String[] args) throws IOException {// 1.创建一个OkHttpClient  (发送请求)OkHttpClient okHttpClient = new OkHttpClient();// 2.创建一个Request  (对应的数据:url、请求数据)// 创建一个请求体 -bodyString data = "{\"username\":\"admin\",\"password\":\"123456\"}";//       RequestBody requestBody = RequestBody.create(数据格式,数据);RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data);Request request = new Request.Builder().url("http://127.0.0.1:8080/login/addChartButByMoke").post(requestBody).build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();if(response.isSuccessful()) {System.out.println("请求成功");System.out.println(result);}// 5.关闭连接response.close();}
}

POST上传文件

java"> public static void main(String[] args) throws IOException {// 1.创建一个OkHttpClient  (发送请求)OkHttpClient okHttpClient = new OkHttpClient();// 数据格式MediaType mediaType =  MediaType.parse("image/jpeg");// 构造请求参数 - 文件File filePath = new File("C:\\youFilePath");RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file", "youFileName", RequestBody.create(mediaType, filePath)).build();Request request = new Request.Builder().url("http://127.0.0.1:8080/postFile").post(requestBody).build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();if(response.isSuccessful()) {System.out.println("请求成功");System.out.println(result);}// 5.关闭连接response.close();}

OkHttp之delete

java"> public static void main(String[] args) throws IOException {// 1.创建一个OkHttpClient  (发送请求)OkHttpClient okHttpClient = new OkHttpClient();// 数据 171 可以分离出来String userId = new String("171");String url = String.format("http://127.0.0.1:8080/login/deleteChartButByMoke/%s", userId);// 然后把url放到url里面// 2.创建一个Request  (对应的数据:url、请求数据)Request request = new Request.Builder().url("http://127.0.0.1:8080/login/deleteChartButByMoke/171").delete().build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();if(response.isSuccessful()) {System.out.println("请求成功");System.out.println(result);}// 5.关闭连接response.close();}

OkHttp之put

java">public static void main(String[] args) throws IOException {// 1.创建一个OkHttpClient  (发送请求)OkHttpClient okHttpClient = new OkHttpClient();// 数据 171 可以分离出来String userId = new String("171");String url = String.format("http://127.0.0.1:8080/login/deleteChartButByMoke/%s", userId);// 然后把url放到url里面// 构建需要修改的数据RequestBody requestBody = new FormBody.Builder().add("userId", userId).add("userName", "zhangsan").add("password", "123456").add("email", "123456@qq.com").add("phone", "123456").add("sex", "男").add("birthday", "1999-01-01").build();// 2.创建一个Request  (对应的数据:url、请求数据)Request request = new Request.Builder().url("http://127.0.0.1:8080/login/deleteChartButByMoke/171").put(requestBody).build();// 3.发送请求Response response = okHttpClient.newCall(request).execute();// 4.获取响应String result = response.body().string();if(response.isSuccessful()) {System.out.println("请求成功");System.out.println(result);}// 5.关闭连接response.close();}

http://www.ppmy.cn/embedded/152148.html

相关文章

BGP(Border Gateway Protocol)路由收集器

全球 BGP&#xff08;边界网关协议&#xff09;路由收集器的分布情况以及相关数据。以下是主要的信息解读&#xff1a; 地图标记&#xff1a; 每个绿色点代表一个路由收集器的位置。路由收集器分布在全球不同的地区&#xff0c;覆盖了五大区域&#xff1a; ARIN&#xff08;美…

详细讲一下React中Redux的持久化存储(Redux-persist)

1.安装依赖&#xff1a; npm install redux-persist 2. 基础配置&#xff1a; // store.js import { configureStore } from reduxjs/toolkit import { persistStore, persistReducer } from redux-persist import storage from redux-persist/lib/storage // 默认是 localS…

密码学原理技术-第十章-Digital Signatures

文章目录 总结The principle of digital signatures核心流程Security of Signature Schemes Security servicesCore Security ServicesAdditional Security Services The RSA digital signature schemeMain idea of the schoolbook RSA signature schemeSecurity and Performan…

AdaBoost算法详解与PyTorch实现

AdaBoost算法详解与PyTorch实现 目录 AdaBoost算法详解与PyTorch实现1. AdaBoost算法概述1.1 集成学习1.2 AdaBoost的优势2. AdaBoost的核心技术2.1 样本权重调整2.2 弱分类器组合2.3 损失函数2.4 正则化技术3. PyTorch实现AdaBoost3.1 环境准备3.2 PyTorch实现AdaBoost4. 案例…

【React】漫游式引导

前言 项目中Antd版本较低&#xff0c;升级到有该组件的新版风险过于大&#xff0c;因为考虑到是老项目&#xff0c;不升级为上策&#xff08;怕出啥幺蛾子&#xff09;&#xff0c;所以抽出为一个内部组件完成需求即可&#x1f60e;~ 实践 Tour const Tour ({visible,step…

单元测试、系统测试和集成测试知识

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、单元测试的概念 单元测试是对软件基本组成单元进行的测试&#xff0c;如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff…

# Kafka组件化及拓展

1.Kafka Kafka是一个开源的分布式事件流处理平台。主要用于构建实时数据管道和流处理应用程序&#xff0c;广泛用于日志采集。Kafka具有高吞吐量、高可用性、持久化存储、可拓展性等特点。因为公司项目中消息中间件都是用的Kafka&#xff0c;而且也发现在使用时有一些亮点和设…

大带宽服务器和普通服务器相比较的优势

服务器作为各个企业线上业务中重要的网络设备&#xff0c;能够在网络中为其他客户机提供计算或者是应用服务&#xff0c;不同的应用场景中也会运用不同的服务器类型&#xff0c;本文就来为大家介绍一下大带宽服务器与普通服务器相比较来说的优势都有哪些&#xff01; 大带宽服务…