我正在使用 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错误;使其工作的唯一方法是发送不带此标头的请求。
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
此处定义的错误:
我有 RestAssured 版本 5.4.0。 我可以使用
noContentType()
方法阻止发送 Content-Type 标头。
例如:
given().noContentType().post("https://www.restapiexample.com/")