RestAssured - 如何发送没有 Content-Type 的请求?

问题描述 投票:0回答:2

我正在使用 RestAssured 发送请求:

    Map<String, Object> headers = new HashMap<>();
    headers.put("Accept", "*/*");
    headers.put("Accept-Encoding", "gzip, deflate, br");
    headers.put("Connection", "keep-alive");

    Response response = RestAssured.given().baseUri(BASE_URL)
            .headers(headers)
            .log().all()
            .post(URL_PREFIX + "/documents/request/" + username);

但是,在日志中我看到自动添加了 1 个标头:

Content-Type=application/x-www-form-urlencoded; charset=ISO-8859-1

我收到 415 错误。 是否可以发送没有 Content-Type 的请求?我的意思是,根本没有这个标题;如果发送请求时Content-Type等于空行,仍然会出现400错误;使其工作的唯一方法是发送不带此标头的请求。

rest-assured
2个回答
0
投票

RestAssured 框架中似乎存在一个仍处于打开状态的错误(我在 4.3.3 中验证过)。

// https://mvnrepository.com/artifact/io.rest-assured/rest-assured
testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '4.3.3'

在为 API 创建负面测试时发现的。当尝试发送请求时,会自动生成以下内容类型。

Content-Type=application/x-www-form-urlencoded; charset=ISO-8859-1

此处定义的错误:

https://github.com/rest-assured/rest-assured/issues/656

https://github.com/rest-assured/rest-assured/issues/986


0
投票

我有 RestAssured 版本 5.4.0。 我可以使用

noContentType()
方法阻止发送 Content-Type 标头。

例如:

given().noContentType().post("https://www.restapiexample.com/")
© www.soinside.com 2019 - 2024. All rights reserved.