You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:36:28