對于這個請求,我在服務器上期待一個錯誤,然后我將它作為一個字串與預期的回應進行比較。
return given()
.queryParams(incorrectParams)
.when()
.put("https://example.com/endpoint")
.then()
.statusCode(500)
.extract().body().as(String.class)
問題是,RestAssured在執行這個時給我一個錯誤。java.lang.IllegalStateException。無法決議物件,因為回應中沒有指定支持的Content-Type。Content-Type是'text/html;charset=ISO-8859-1'。
我已經在設定中添加了解碼器,但它沒有幫助。
RestAssured.config().decoderConfig(new DecoderConfig(ContentType.HTML.withCharset(Charset.forName("ISO-8859-1"))));
錯誤情況下,服務器回傳的型別是。Content-Type: text/html;charset=ISO-8859-1
我還在除錯器中看到,默認解碼器應該支持這樣的回應。
還有一件事要提到--如果請求在queryParams中以正確的引數發送,那么就會回傳Content-Type: application/json,并且在正面測驗案例中一切正常。
如何正確處理(提取)這樣的回應?在Rest Assured方面應該如何設定?
Rest-assured版本是4.4.0
uj5u.com熱心網友回復:
只是為了將回應保存為字串,你可以這樣做。
.then()
.statusCode(500)
.extract().asString()
uj5u.com熱心網友回復:
幫助我正確解碼的方法是
.extract().body().asPrettyString()。
然而,我相信應該有更合適的方法來解決這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309937.html
標籤:
