gpt4 book ai didi

java - 当我的数组中有参数时,如何发送发布请求?

转载 作者:行者123 更新时间:2023-12-02 01:36:31 24 4
gpt4 key购买 nike

我在 Postman 中有一个 post 方法,如下所示:

{
"name": "Produkt 1",
"description": "Opis produktu",
"price": 2500,
"tax": 23.0,
"currency": "PLN",
"producer": "Marka",
"quantity": 100,
"quantity_type": "unit",
"producer_code": "12345",
"ean_code": "9638-5074",
"is_active": 1,
"category": "lorem-ipsum",
"variant_group_id": "",
"attributes": [
{
"attribute": "laudantium",
"value": "1",
"is_variant": "1"
},
{
"attribute": "brand",
"value": "Brand Y"
}
]
}

尝试通过 Rest Assured 发送此方法,但我一直收到响应,我需要发送属性(状态 422)。

这是我的 RestAssured 代码:

response =given()
.log()
.params()
.request()
.header("Accept","application/json")
.header("Content-Type", "application/json")
.queryParam("name",args[0])
.queryParam("description",args[1])
.queryParam("price",args[2])
.queryParam("tax",args[3])
.queryParam("currency",args[4])
.queryParam("producer",args[5])
.queryParam("quantity",args[6])
.queryParam("quantity_type",args[7])
.queryParam("producer_code",args[8])
.queryParam("ean_code",args[9])
.queryParam("category",args[10])
.queryParam("variant_group_id",args[11])
.queryParam("is_active",args[12])
.queryParams("attributes.attribute[0]","laudantium")
.queryParam("attributes.value[0]","1")
.queryParam(".is_variant[0]","1")
.post(HOST+"/products");

如何发送有效的属性参数?我怀疑 queryParam 表示法有问题..

最佳答案

多亏了你们,我才明白了这一点。我必须像这样改变我的方法体:

    JSONObject childJSON = new JSONObject();
childJSON.put("attribute", "sit-omnis");
childJSON.put("value",value);
childJSON.put("is_variant",is_variant);

JSONArray array = new JSONArray();
array.add(childJSON);

JSONObject requestParams = new JSONObject();
requestParams.put("name",args[0]);
requestParams.put("description",args[1]);
requestParams.put("price",args[2]);
requestParams.put("tax",args[3]);
requestParams.put("currency","PLN");
requestParams.put("producer",args[4]);
requestParams.put("quantity",args[5]);
requestParams.put("quantity_type","unit");
requestParams.put("producer_code",args[6]);
requestParams.put("ean_code","9638-5074");
requestParams.put("is_active",isActive);
requestParams.put("category",args[7]);
requestParams.put("variant_group_id",args[8]);
requestParams.put("attributes",array);

response =given()
.log()
.params()
.request()
.header("Accept","application/json")
.header("Content-Type", "application/json")
.body(requestParams.toJSONString())
.post(INEGRATOR_HOST+"/products");
checkStatusAndShowBody(codeStatus);

首先,我将所有需要的参数创建为 JSON,然后将 3 个参数(顶部)转换为 JSON 数组,因为参数“attributes”是一个数组。比我简单地把变量数组作为“属性”的值并且它起作用。

我的方法需要通过 HMAC-512 进行身份验证,但我在本期中错过了它,因为我认为它不是那么重要。不管怎样,我得到了代码 200 和良好的 react 。谢谢大家!

关于java - 当我的数组中有参数时,如何发送发布请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55178323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com