当前位置: 首页 > 知识库问答 >
问题:

如何从REST-ASTUED请求XML内容类型

戚哲
2023-03-14

我有一个支持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()
            .contentType("application/xml")
            .expect()
            .contentType(ContentType.XML)
            .statusCode(404)
            .get("/resources/main/revisions/10000");
Request method: GET
Multiparts:             <none>
Headers:                Accept=*/*
                            Content-Type=application/xml; charset=ISO-8859-1
Body:                   <none>

共有1个答案

百里泓
2023-03-14

您需要accept标头:

given()
       .spec(requestSpec)
       .header("Accept", "application/xml")
       .get("/resources/main/revisions/10000")
 类似资料:
  • 现有的客户端很多,改变它们是不可行的。 我已经成功地创建了一个服务,它在大多数客户机上都有一个令人烦恼的异常。 因为旧的服务是SOAP1.1,所以我尝试使用一个basicHttpBinding,比如: 但是,我在这两个绑定中找不到一个设置组合,可以同时允许“application/xml”和“text/xml”的内容类型,并在标题中使用SOAP1.1样式的“soapaction”寻址。 我还尝试实

  • 遵循我正在测试的请求:curl-x GET\'http://localhost:8080/credits/v1/rating?client_cpf_cnpj=11111111111'\-h'accept:application/xml'\-h'cache-control:no-cache'\-h'content-type:application/xml'

  • 我正在使用Restasured发送请求: 然而,在日志中,我看到又自动添加了1个标题: 我得到415个错误。是否可以发送没有内容类型的请求?我的意思是,没有这个标题;如果发送请求时内容类型等于空行,则仍然存在400错误;使其工作的唯一方法是在不使用此标头的情况下发送请求。

  • 问题内容: 我有一个涉及httprequest的错误,有时会发生,所以我想记录HttpGet和HttpPost请求的内容。 所以,让我们说,我这样创建HttpGet: 这是我想要的字符串表示形式: 对于发布请求,我还想获取内容字符串。 在Java for Android中最简单的方法是什么? 问题答案: 您可以使用以下命令打印请求类型: 您可以按此处所述打印所有标题: 要打印所有请求参数,请使用以

  • 我正在使用flurl提交HTTP请求,这是非常有用的。现在,我需要将一些请求的“content-type”头更改为“application/json;odata=verbose” 您可以看到我如何尝试添加上面的头() 不幸的是,这给了我以下错误: “InvalidOperationException:错误使用的标头名称。请确保请求标头与HttpRequestMessage一起使用,响应标头与Htt

  • 我需要在我的Spring Boot应用程序中添加一个侦听器,在web中。看起来像是xml 我不用网络。xml配置,所以我有一个类 从上面的代码中可以看出,我已经向onStartup(ServletContext servletContext)方法添加了一个侦听器,但是它没有帮助,因为我仍然得到 这条消息。如何将侦听器正确添加到Spring Boot Application?