Я отправляю POST-вызов конечной точке с файлом, в имени которого есть кириллицы c символов. Я пытался установить кодировку UTF-8 в каждом месте, о котором я знал.
RestAssured.config = RestAssured.config()
.encoderConfig(encoderConfig().defaultContentCharset("UTF-8"))
.encoderConfig(encoderConfig().defaultCharsetForContentType("UTF-8", "multipart/form-data"))
.multiPartConfig(multiPartConfig().defaultCharset("UTF-8"))
.decoderConfig(decoderConfig().defaultContentCharset("UTF-8"))
.decoderConfig(decoderConfig().defaultCharsetForContentType("UTF-8", "multipart/form-data"));
RequestSpecification rs = given()
.baseUri(baseUrl)
.header("Content-Type", "multipart/form-data")
.header(getAuthHeader())
.config(RestAssured.config)
.multiPart(
new MultiPartSpecBuilder(file)
.controlName("file")
.mimeType("audio/mpeg")
.fileName(file.getName())
.charset("UTF-8")
.build()
)
.multiPart(
new MultiPartSpecBuilder(categoryId)
.controlName("categoryId")
.build()
)
.multiPart(
new MultiPartSpecBuilder(fileTitle)
.charset(Charsets.UTF_8)
.controlName("fileTitle")
.build()
)
.log().everything();
rs
.when()
.post(FilePaths.add.value)
.then()
.log().everything()
.statusCode(201)
.contentType(ContentType.JSON);
Когда я отлаживаю код API, я вижу, что в приведенном выше случае заголовок размещения содержимого поставляется с Cyrilli c символы заменены на вопросительный знак: form-data; name="file"; filename="??????.mp3"
.
Когда я делаю тот же звонок с почтальоном, он работает просто отлично. Единственное отличие, которое я вижу между звонком с уверенностью и почтальоном, - это заголовок размещения контента.
Есть идеи, что нужно настроить для уверенной конфигурации?