POST 嵌套数组失败(放心)
POST fails( rest-assured) with nested arrays
我在 POST 的有效负载中嵌套了数组。尝试通过放心 运行 POST 但它抛出 400 我尝试了 hashmap 和对象映射器但无法使其工作。
{
"actions": [
{
"n": "O",
"r": "o",
"value": {
"value": true
}
}
],
"condition": {
"conditions": [
{
"i": "o",
"n": "O",
"operand": "true",
"operator": "=",
"property": "value",
"rt": "o",
"type": "boolean"
}
],
},
"currentStatus": "Enabled",
}
您可以按如下方式创建请求正文;
Map<String, Object> requestBody = new HashMap<>();
// Create actions object array
Map<String, Object> valueMap = new HashMap<>();
valueMap.put("value",true);
Map<String, Object> actionsObject = new HashMap<>();
actionsObject.put("n", "O");
actionsObject.put("r", "o");
actionsObject.put("value", valueMap);
Object[] actionsArray = new Object[1];
actionsArray[0] = actionsObject;
requestBody.put("actions", actionsArray);
// Create condition object
Map<String, Object> conditionsObject = new HashMap<>();
conditionsObject.put("i", "o");
conditionsObject.put("n", "O");
conditionsObject.put("operand", "true");
conditionsObject.put("operator", "=");
conditionsObject.put("property", "value");
conditionsObject.put("rt", "o");
conditionsObject.put("type", "boolean");
Object[] conditionsArray = new Object[1];
conditionsArray[0] = conditionsObject;
Map<String, Object> conditionMainObject = new HashMap<>();
conditionMainObject.put("condition", conditionsArray);
requestBody.put("conditions", conditionMainObject);
// add currentStatus
requestBody.put("currentStatus", "Enabled");
JSONObject request = new JSONObject(requestBody);
然后使用request
中的POST调用;
Response response = RestAssured
.given(RequestSpec).auth()
.body(request)
.post("?id=" + Id);
int statusCode = response.getStatusCode();
System.out.println(statusCode);
assertThat(statusCode, equalTo(200));
需要导入;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
我在 POST 的有效负载中嵌套了数组。尝试通过放心 运行 POST 但它抛出 400 我尝试了 hashmap 和对象映射器但无法使其工作。
{
"actions": [
{
"n": "O",
"r": "o",
"value": {
"value": true
}
}
],
"condition": {
"conditions": [
{
"i": "o",
"n": "O",
"operand": "true",
"operator": "=",
"property": "value",
"rt": "o",
"type": "boolean"
}
],
},
"currentStatus": "Enabled",
}
您可以按如下方式创建请求正文;
Map<String, Object> requestBody = new HashMap<>();
// Create actions object array
Map<String, Object> valueMap = new HashMap<>();
valueMap.put("value",true);
Map<String, Object> actionsObject = new HashMap<>();
actionsObject.put("n", "O");
actionsObject.put("r", "o");
actionsObject.put("value", valueMap);
Object[] actionsArray = new Object[1];
actionsArray[0] = actionsObject;
requestBody.put("actions", actionsArray);
// Create condition object
Map<String, Object> conditionsObject = new HashMap<>();
conditionsObject.put("i", "o");
conditionsObject.put("n", "O");
conditionsObject.put("operand", "true");
conditionsObject.put("operator", "=");
conditionsObject.put("property", "value");
conditionsObject.put("rt", "o");
conditionsObject.put("type", "boolean");
Object[] conditionsArray = new Object[1];
conditionsArray[0] = conditionsObject;
Map<String, Object> conditionMainObject = new HashMap<>();
conditionMainObject.put("condition", conditionsArray);
requestBody.put("conditions", conditionMainObject);
// add currentStatus
requestBody.put("currentStatus", "Enabled");
JSONObject request = new JSONObject(requestBody);
然后使用request
中的POST调用;
Response response = RestAssured
.given(RequestSpec).auth()
.body(request)
.post("?id=" + Id);
int statusCode = response.getStatusCode();
System.out.println(statusCode);
assertThat(statusCode, equalTo(200));
需要导入;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;