[英]org.springframework.http.converter.HttpMessageNotReadableException
[英]Rest API Testing org.springframework.http.converter.HttpMessageNotReadableException
我正在嘗試測試兩個Rest API端點,一個是get,另一個是post。 這個想法是,由get響應返回的響應主體應為發布的主體。
我正在使用的代碼:
RestAssured.baseURI = ROOT_URI;
RequestSpecification httpRequest =
RestAssured.given().header("Authorization", "Basic " + encodedString);
String endPoint="/v1/getworkers";
Response response = httpRequest.request(Method.GET, endPoint);
String responseBody = response.getBody().asString();
現在我得到的響應主體是:
{"workerDetails":
[
{"workerId":"TEST123456",
"securityId":"TESTWORKERID",
"workerStatus":"Active",
"firstName":"Test",
"lastName":"Userone"}
]
}
現在,我執行發布請求,並將String responseBody放在正文中:
RestAssured.baseURI = ROOT_URI;
String endpoint="/v1/PostWorkers";
RequestSpecification httpRequest =
RestAssured.given().header("Authorization", "Basic " + encodedString)
.header("Content-Type", "application/json").body(postbody);
Response response = httpRequest.request(Method.POST,endpoint);
String responseBody = response.getBody().asString();
我收到錯誤400:
timestamp“:1552670194453,” status“:400,” error“:” Bad Request“,” exception“:” org.springframework.http.converter.HttpMessageNotReadableException“,” message“:” JSON解析錯誤:無法反序列化以下實例START_OBJECT令牌中沒有java.util.ArrayList; 嵌套的異常是com.fasterxml.jackson.databind.JsonMappingException:無法從START_OBJECT令牌中反序列化java.util.ArrayList的實例\\ n,位於[來源:java.io.PushbackInputStream@56bba771
該怎么辦 ?
根據錯誤日志的問題是:
JSON解析錯誤:無法從START_OBJECT令牌中反序列化java.util.ArrayList實例
這意味着API期望將ArrayList
作為輸入,但是將Object
作為輸入。 換句話說,它會被期待着與輸入ArrayList<WorkerDetail>
但要傳遞對象的輸入WorkerDetails
,它包含一個字段workerDetails
類型ArrayList<WorkerDetail>
請嘗試從以下位置修改get請求的響應:
String responseBody = response.getBody().asString();
至:
List responseBody = response.jsonPath().getList("workerDetails");
然后將這個responseBody
傳遞給POST
請求的body()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.