获得;java.lang.IllegalArgumentException:Don';我不知道如何将XXX编码为字节流。”;
我想从字符串中提取JSON数据。这是我的密码:获得;java.lang.IllegalArgumentException:Don';我不知道如何将XXX编码为字节流。”;,java,rest-assured,Java,Rest Assured,我想从字符串中提取JSON数据。这是我的密码: String APIBody = "{\"queryString\": \"Pearson AND unscrubbed:false\"}"; RequestSpecBuilder rbuild = new RequestSpecBuilder(); rbuild.setBody(APIBody); rbuild.setContentType("application json;charset = UTF-8"); RequestSpecifica
String APIBody = "{\"queryString\": \"Pearson AND unscrubbed:false\"}";
RequestSpecBuilder rbuild = new RequestSpecBuilder();
rbuild.setBody(APIBody);
rbuild.setContentType("application json;charset = UTF-8");
RequestSpecification rSpec = rbuild.build();
Response resp = given().headers(headers).spec(rSpec).when().post("https://content-service.stg-prsn.com/csg/api/v2/search");
在最后一行中,我将作为hashmap传递多个头
我得到以下错误:
尝试使用
javajson.jar
而不是restassured
。我尝试使用下面给出的restassed
api:
Response resp = given().config(RestAssured.config().encoderConfig(((Object) encoderConfig()).encodeContentTypeAs("application json", APIBody)));
但是jar文件中缺少/未定义以下方法
配置:
对于重新发布的类型,未定义方法config()
编码内容类型
方法encodeContentTypeAs(String,String)对于
类型对象
试着用下面的方式给予
Response res = given()
.relaxedHTTPSValidation()
.body(APIBody)
.with()
.contentType("application/json")
.then()
.post(url);
谢谢我觉得restasured不够聪明,无法理解带有字符集的内容类型JSON。简单的解决办法是更换
setContentType("application json;charset = UTF-8");
对于枚举io.restassured.http.ContentType:
不确定这是什么原因,但请尝试更改为
rbuild.setContentType(“application/json;charset=UTF-8”)代码>正确缩进的代码,
setContentType("application json;charset = UTF-8");
setContentType(ContentType.JSON)