如何向放心请求 XML 内容类型

how to request XML content type from rest-assured

我有一个支持 json 和 xml 的 REST api。我想测试 XML 端,但自从升级到版本 2.4.0 后,我收到一个错误:

预期的内容类型 "XML" 与实际的内容类型 "application/json" 不匹配。

        <dependency>
            <groupId>com.jayway.restassured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.jayway.restassured</groupId>
            <artifactId>json-path</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.jayway.restassured</groupId>
            <artifactId>xml-path</artifactId>
            <version>2.4.0</version>
        </dependency>

这里有一些未通过测试的测试代码示例。

    RequestSpecification requestSpec = new RequestSpecBuilder()
            .setContentType("application/xml")
            .build();

    expect()
            .contentType(ContentType.XML)
            .statusCode(200)
            .given()
            .spec(requestSpec)
            .get("/resources/main/dictionaries");

我也试过直接在 given() 上设置内容类型

    given()
            .contentType("application/xml")
            .expect()
            .contentType(ContentType.XML)
            .statusCode(404)
            .get("/resources/main/revisions/10000");

如何强制请求获取 XML 媒体类型?

请求日志如下所示:

Request method: GET
Multiparts:             <none>
Headers:                Accept=*/*
                            Content-Type=application/xml; charset=ISO-8859-1
Body:                   <none>

你需要一个 Accept header:

given()
       .spec(requestSpec)
       .header("Accept", "application/xml")
       .get("/resources/main/revisions/10000")