接口请求参数
接口请求参数
简介
接口参数是在进行网络通信或调用接口时传递给接口的数据,接口参数用于指定操作的详细信息、请求的内容、过滤条件或其他需要接口处理的信息,通过将参数传递给接口,可以控制接口的行为并获取相应的结果。
案例: https://ceshiren.com/search?expanded=true&q=requests
携带请求参数的方式
接口请求中携带的参数会在路径之后使用 ?
代表客户端向服务端传递的参数,可以使用 key=value
形式拼接在 URL 中,如果有多个参数的话,则使用 &
分隔。
常用两种方式:
- 直接在 URL 中拼接:
?username=Hogwarts&id=666
。
- 通过 params 参数传递:
requests.get(url, params)
携带请求参数的 GET 请求
# 导入依赖
import requests
def get_by_params():
# 定义接口的 url 和拼接在 url 中的请求参数
url = "https://httpbin.ceshiren.com/get"
#定义变量params
params ={
"get_key": "get_value"
}
# 发出 GET 请求,r 接收接口响应
r = requests.get(url, params=params)
print(r.json())
def get_by_url():
# 定义接口的 url 和拼接在 url 中的请求参数
url = "https://httpbin.ceshiren.com/get?get_key=get_value"
# 发出 GET 请求,r 接收接口响应
r = requests.get(url)
print(r.json())
get_by_params()
get_by_url()
#两种执行方式都是将参数直接赋值给url,在实战中,可根据接口的情况进行使用不同的方法
get
类型接口上传的 params
在响应中的位置。
携带params请求参数的 POST 请求
# 导入依赖
import requests
def post_by_params():
# 定义接口的 url
url = "https://httpbin.ceshiren.com/post"
#定义变量params
params = {
"post_key": "post_value"
}
# 发出 POST 请求,r 接收接口响应
r = requests.post(url, params=params)
print(r.json())
post_by_params()
携带请求参数的方式(Java)
常用两种方式(Java):
- 方式一:直接拼接在
URL
中: -?username=Hogwarts&id=666
- 方式二:通过
given()
的queryParam()
传递: -queryParam()
:单个URL
参数。 -queryParams()
:多个URL
参数。
携带请求参数示例代码
package com.ceshiren.params;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.when;
/**
* 测试参数处理的示例类,用于演示如何在REST Assured框架中处理HTTP请求的参数。
*/
public class TestParams {
// 方法一
/**
* 直接将参数拼接到URL中的GET请求测试。
* 这种方式适用于参数较少且简单的场景。
*/
@Test
void getURLReq() {
when()
.get("https://httpbin.ceshiren.com/get?name=ad&scholl=hogwarts")
.then()
.log().all();
}
// 方法二
/**
* 使用queryParam()方法传递参数的GET请求测试。
* 这种方式可以动态地添加多个参数,更灵活。
*/
@Test
void queryGetParam() {
given()
.queryParam("name", "ad")
.queryParam("scholl", "hogwarts")
.when()
.get("https://httpbin.ceshiren.com/get")
.then()
.log().all();
}
/**
* 使用queryParams()方法批量传递参数的GET请求测试。
* 通过HashMap构造参数,适用于参数较多或需要动态生成参数的情况。
*/
@Test
void getQueryParamsReq(){
// 创建一个HashMap来存储请求参数
HashMap<String, Object> query = new HashMap<>();
query.put("name", "ad");
query.put("school", "hogwarts");
// 使用given().queryParams(query)来设置请求参数
given().log().all()
.queryParams(query)
.when()
.get("https://httpbin.ceshiren.com/get")
.then()
.log().all();
}
/**
* 使用queryParams()方法批量传递参数的POST请求测试。
* 同样使用HashMap来构造参数,适用于POST请求中的参数传递。
*/
@Test
void postQueryParamsReq(){
// 创建一个HashMap来存储请求参数
HashMap<String, Object> query = new HashMap<>();
query.put("name", "ad");
query.put("school", "hogwarts");
// 使用given().queryParams(query)来设置请求参数
given()
.log().all()
.queryParams(query)
.when()
.post("https://httpbin.ceshiren.com/post")
.then()
.log().all();
}
}
总结
- 请求参数拼接在URL中
- 请求参数通过指定参数传递