放心版:3.0.5
作为用户,我们已将contentType作为XML传递给具有有效内容的以下格式。
contentType(ContentType.XML) OR .contentType("application/xml")
在应用程序允许的内容类型中: "应用/ XML" 提供的内容类型反映如下。
Content-Type=application/xml; charset=ISO-8859-1
由于这个原因,它给出了错误"内容类型无效" 如何处理这个用例。
答案 0 :(得分:1)
正如预期的内容类型是application / xml但提供的内容类型对象包括" charset = ISO-8859-1"。因此,我们需要删除此charset详细信息。
EncoderConfig encoderconfig = new EncoderConfig();
Response response = given()
.config(RestAssured.config()
.encoderConfig(encoderconfig .appendDefaultContentCharsetToContentTypeIfUndefined(false)))
.contentType(ContentType.XML)
.log().all().body(this.buildPayload()).when().
post(...).
...
有关详细信息,请参阅以下链接:
https://groups.google.com/forum/#!topic/rest-assured/O74EgJWUSJY
答案 1 :(得分:0)
尝试下面的代码集。...
given().
config(RestAssured.config().encoderConfig(encoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false))).
contentType("application/json").
body(...).
when().
post(...).
...
答案 2 :(得分:0)
如果您使用 RequestSpecBuilder
来构建 RequestSpecification
,那么您需要在创建最终规范之前删除 charset=ISO-8859-1
private static RequestSpecification specification;
RequestSpecBuilder builder = new RequestSpecBuilder();
builder.setConfig(RestAssuredConfig.newConfig().encoderConfig(EncoderConfig.encoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false)));
builder.setContentType(ContentType.XML);
specification = builder.build();
// And then you can use in your code like
RestAssured.given().spec(specification).body(XMLrequestBody).when().
post(...).
答案 3 :(得分:0)
EncoderConfig EC= new EncoderConfig();
given().config(RestAssured.config()
.encoderConfig(EC.appendDefaultContentCharsetToContentTypeIfUndefined(false)))
.contentType(ContentType.XML);