rest - 使用 REST Assured 进行 Web 服务测试:在 POST 请求中使用参数时收到失败响应
问题描述
使用带参数的发布请求时出现以下错误:
{
"failure":{
"failureCode":"1035",
"failureDetails":"Id: null format is not valid",
"failureInstance":null,
"failureMessage":"Malformed ID(s) detected.",
"failureMessageParameter":null
}
}
以下是我的代码:
LoadProperties lp = new LoadProperties();
@BeforeTest
public void beforeTest(){
lp.load();
RestAssured.keyStore(lp.getProperty("certificatePath"),lp.getProperty("certificatePassword"));
RestAssured.trustStore(lp.getProperty("cacertsPath"), lp.getProperty("cacertsPassword"));
}
@Test
public void test(){
RestAssured.baseURI = lp.getProperty("baseURL");
RequestSpecification request = RestAssured.given().header("Authorization", lp.getProperty("AccessToken"));
request.header("Content-Type","application/json");
JSONObject json = new JSONObject();
try{//**Here I add parameters to json object**
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
json.put("", lp.getProperty(""));
}catch(Exception e){
e.printStackTrace();
}
request.body(json.toString());
Response response = request.post(lp.getProperty("URL"));
String statusCode = String.valueOf(response.statusCode());
System.out.println(response.body().asString());
Assert.assertEquals(statusCode, "200");
}
但是,如果我使用硬编码数据(String sData =“{Parameters}”)传递给请求正文,我会得到所需的结果,但在使用 json 对象时不会。我也尝试过使用 GSON 将 json 对象转换为 jsonString 但仍然与上面的响应相同。
请帮忙。谢谢。
解决方案
推荐阅读
- c - 查找最长的不重复子数组
- javascript - 在添加新过滤器之前重置过滤器
- c# - 我的 addforce 没有在应有的地方工作
- reactjs - 材质 UI:使用 onMouseLeave 道具时弹出窗口中断
- php - 如何在控制器中使用 laravel Auditor
- c++ - Divide et impera 数组错误的元素的总和
- c++ - 在 WM_CREATE 中加载多个位图的 C++ Win32 不会加载
- python - Python/Kivy-iOS/Xcode 环境的模块导入问题
- sql - 如何在多个条件下计算值以及如何设计数据库?
- makefile - make 不解析目标名称的绝对路径