在Rest Assured中如何用LinkedHashMap构造含数组值的请求体
Rest Assured中用LinkedHashMap构造目标请求体的正确方式
你当前的问题是ABC字段的值被序列化为字符串"XYZ",但接口要求的是数组类型["XYZ"],只需要将ABC对应的值改为列表(List)类型即可满足要求。
正确的代码实现如下:
import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; // 构造内层的body结构 Map<String, Object> innerBody = new LinkedHashMap<>(); // 给ABC赋值为包含"XYZ"的列表,序列化后即为数组格式 innerBody.put("ABC", Arrays.asList("XYZ")); innerBody.put("PASSWORD", "password"); // 构造完整的请求体结构 Map<String, Object> requestBody = new LinkedHashMap<>(); requestBody.put("request", Map.of("body", innerBody));
在Rest Assured中发送请求时,直接将这个requestBody作为请求体传入即可:
given() .contentType(ContentType.JSON) .body(requestBody) .when() .post("/target-api-path") .then() .assertThat() .statusCode(200);
这样构造出来的请求体就会和目标格式完全一致,ABC字段的值会以数组["XYZ"]的形式发送,解决之前的报错问题。
内容的提问来源于stack exchange,提问作者Deepali Sinha
相关产品推荐
相关产品推荐

