【发布时间】:2023-02-10 10:34:10
【问题描述】:
我目前正在测试一个非常具体的 API,它拒绝接受具有 Content-Transfer-Encoding: binary 的请求。我抛出 415 - 不受支持的媒体类型错误。但是,当我发送相同的文件并使用邮递员构建相同的请求时,它会毫无问题地接受它。查看服务中收到的日志,这两个请求的唯一区别是放心的请求在正文中包含 Content-Transfer-Encoding: binary。这是它的样子:
因此,为了调试和查明这是否确实是请求失败的原因,我想从正文中删除 Content-Transfer-Encoding: binary。但我不知道如何。我尝试使用以下代码,但请求仍然存在。这是我正在使用的代码:
request = given()
.header("Authorization", "Bearer " + LoginSteps.accessToken)
.queryParam("memberId", memberId)
.multiPart("receipt", new File(receiptFilePath), "image/jpeg")
.urlEncodingEnabled(false)
.config(RestAssuredConfig.config()
.encoderConfig(EncoderConfig
.encoderConfig()
.appendDefaultContentCharsetToContentTypeIfUndefined(false)
.encodeContentTypeAs("image/jpeg", io.restassured.http.ContentType.ANY)));
request.post(baseUrl + endpoint);
谁能告诉我如何从此请求中删除 Content-Transfer-Encoding?
【问题讨论】:
-
这回答了你的问题了吗? RESTAssured Multipart content-type
-
不,它没有。它处理请求标头中的内容类型,而不是导致我出现问题的正文中的 Content-Transfer-Encoding
-
邮递员在您的请求中添加一个额外的标头,将这些标头与您的标头进行比较,并将缺失添加到您的 RA 代码中
标签: java api rest-assured