OkHttp接口自动化测试

文章目录

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

java环境搭建

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

OkHttp之get

  • 基本语法格式
	// 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();

在这里插入图片描述

OkHttp之POST

POST发送From表单

  • post请求
package interfaceTest;import 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();}
}

在这里插入图片描述
在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(就是普通的文本内容)

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

在这里插入图片描述

POST发送json

  • POST发送json格式
package interfaceTest;import 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上传文件

 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

 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

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.rhkb.cn/news/501146.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分数阶傅里叶变换代码 MATLAB实现

function Faf myfrft(f, a) %分数阶傅里叶变换函数 %输入参数&#xff1a; %f&#xff1a;原始信号 %a&#xff1a;阶数 %输出结果&#xff1a; %原始信号的a阶傅里叶变换N length(f);%总采样点数 shft rem((0:N-1)fix(N/2),N)1;%此项等同于fftshift(1:N)&#xff0c;起到翻…

【Rust练习】26.Package and Crate

练习题来自&#xff1a;https://practice-zh.course.rs/crate-module/crate.html 建议在命令行下操作完成本节内容&#xff0c;Windows 11/10 首选 Windows 终端&#xff0c;好看&#xff0c;支持渲染中文字体&#xff0c;缺点是功能太少了&#xff1b;其次推荐 mobaxterm&…

Python实现接口签名调用

目录: 1、第三方接口签名调用2、调用结果 1、第三方接口签名调用 import json import requests import hashlib import time import hmac access_key xxxxxxxxxxxxxxx secret_key xxxxxxxxxxxxxxx # 应用信息 def _wps4_sig(method, url, date, body): print(body)if bod…

df.replace({‘b‘: r‘\s*(\.)\s*‘}, {‘b‘: r‘\1ty‘}, regex=True)

这段代码 df.replace({b: r\s*(\.)\s*}, {b: r\1ty}, regexTrue) 用于在 DataFrame 中进行替换操作&#xff0c;具体来说是针对 b 列&#xff0c;匹配并替换符合正则表达式的值。 详细解析&#xff1a; df.replace()&#xff1a;这是 Pandas 中的 replace() 方法&#xff0c;用…

js的一些处理

1.翻转字符串 let str abcdef str str.split().reverse().join() console.log(str) 因此想到了我之前写的截取字符串获取参数跳转&#xff0c;在写一遍 let str nameJack&age18&gender男 let list str.split(&); let obj {} list.forEach((v)>{ …

单片机串口控制

1.使用微控制器输入串口指令控制LED灯亮灭 main.c #include "uart4.h"int main() {led_init(); //初始化LED相关寄存器char buf[128];while(1){gets(buf);if(mystrcmp(buf,"LED1_on") 0){led_ctl(1,1); //当在串口工具中输入"LED1_on"时控制L…

物联网开发利器:基于web的强大的可拖拽组态软件

随着互联网、物联网技术的快速发展&#xff0c;BY组态基于多年研发积累和私有部署实践打磨、以及对业务场景的深入理解&#xff0c;推出了适用于物联网应用场景的轻量型web组态软件。 该产品采用 B/S 架构&#xff0c;提供 web 管理界面&#xff0c;软件包大小仅 50MB&#xf…

【开源免费】基于SpringBoot+Vue.JS保密信息学科平台(JAVA毕业设计)

本文项目编号 T 112 &#xff0c;文末自助获取源码 \color{red}{T112&#xff0c;文末自助获取源码} T112&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

ceph文件系统

ceph文件系统&#xff1a;高度可扩展&#xff0c;分布式的存储文件系统&#xff0c;旨在提高性能&#xff0c;高可靠性和高可用的对 象存储&#xff0c;块存储&#xff0c;文件系统的存储。使用分布式的算法保证数据的高可用和一致性。 ceph的组件 1、MON&#xff1a;ceph m…

MySQL 入门大全:运算符

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

Px4 V2.4.8飞控Mavlink命令控制说明

首先&#xff0c;可以使用两种方法连接飞控&#xff0c;使用虚拟机&#xff08;LINUX&#xff09;或使用地面站&#xff08;QGC&#xff09;连接。 在px4的代码文件位置打开命令终端&#xff0c;输入连接命令&#xff1a; ./Tools/mavlink_shell.py 在控制台使用help来获取所有…

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习

文章目录 Section 4&#xff1a;The Vim Help System&#xff08;Vim 帮助系统&#xff09;S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…

java Redisson 实现限流每秒/分钟/小时限制N个

1.引入maven包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>red…

C# 标准数字格式字符串

总目录 前言 当前文章为 C# 中的格式设置(格式化字符串) 大全 中的一个小章节。 一、概述 1. 基本信息 标准数字格式字符串用于格式化通用数值类型。标准数字格式字符串采用 [format specifier][precision specifier] 的形式 format specifier 格式说明符&#xff0c;负责指…

网络分析工具-tcpdump

文章目录 前言一、tcpdump基础官网链接命令选项详解常规过滤规则tcpdump输出 一、tcpdump实践HTTP协议ICMP状态抓包 前言 当遇到网络疑难问题的时候&#xff0c;抓包是最基本的技能&#xff0c;通过抓包才能看到网络底层的问题 一、tcpdump基础 tcpdump是一个常用的网络分析工…

【微软,模型规模】模型参数规模泄露:理解大型语言模型的参数量级

模型参数规模泄露&#xff1a;理解大型语言模型的参数量级 关键词&#xff1a; #大型语言模型 Large Language Model #参数规模 Parameter Scale #GPT-4o #GPT-4o-mini #Claude 3.5 Sonnet 具体实例与推演 近日&#xff0c;微软在一篇医学相关论文中意外泄露了OpenAI及Claud…

springboot集成qq邮箱服务

springboot集成qq邮箱服务 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域&#xff0c;如果当前账号未开启的话自己手动开启。 1.3 获取授权码 进入上图中的【管理服务】后&#xff1a;在【安全设置中生成授权码】,也可以直接点击【继续生成…

Windows系统提示ffmpeg.dll丢失怎么解决?

一、了解ffmpeg.dll文件 ffmpeg.dll是FFmpeg项目的一个动态链接库文件&#xff0c;FFmpeg是一个开源的多媒体处理框架&#xff0c;能够解码、编码、转码、混流、过滤和播放几乎所有已知格式的音频和视频文件。当Windows系统提示ffmpeg.dll丢失时&#xff0c;通常意味着某个需要…

直观解读 JuiceFS 的数据和元数据设计(一)

大家读完觉得有意义和帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 JuiceFS 高层架构与组件2 搭建极简 JuiceFS 集群 2.1 搭建元数据集群2.2 搭建对象存储&#xff08;MinIO&#xff09; 2.2.1 启动 MinIO server2.2.2 创建 bucket2.3 下载 juicefs 客户端2.4 创…

分布式微服务项目___某污水处理项目

一.分布式微服务项目___污水处理项目 项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git ​ 1.项目背景 总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况 ​…