请放心:字符集问题 - 无法识别使用有保证的有效内容类型,因为内容类型无效,因此无法识别

时间:2017-10-24 07:56:48

标签: api automation rest-assured

放心版:3.0.5

作为用户,我们已将contentType作为XML传递给具有有效内容的以下格式。

contentType(ContentType.XML) OR .contentType("application/xml")

在应用程序允许的内容类型中:     "应用/ XML" 提供的内容类型反映如下。

Content-Type=application/xml; charset=ISO-8859-1

由于这个原因,它给出了错误"内容类型无效" 如何处理这个用例。

4 个答案:

答案 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);