Я застрял при отправке запроса формы из нескольких частей через HTTP-клиент Play на AWS S3. По какой-то причине я получаю поврежденное тело, как показано ниже. Вы можете видеть, что в теле запроса есть другие символы, например, e4, 77 et c ....
POST / HTTP/1.1
Content-Type: multipart/form-data; boundary=7hegMdlPdsVJ5-ijbr
Transfer-Encoding: chunked
Host: localhost:8000
Accept: */*
User-Agent: AHC/2.0
e4
--7hegMdlPdsVJ5-ijbr
Content-Disposition: form-data; name="x-amz-meta-callback-url"
Content-Type: text/plain
http://localhost:7021/cgt-property-disposals/upscan-call-back/draft-return-id/dc9013d5-fad0-41f0-8174-38fb55aec01a
77
..
--7hegMdlPdsVJ5-ijbr
Content-Disposition: form-data; name="x-amz-credential"
Content-Type: text/plain
ASIAxxxxxxxxx/20180202/eu-west-2/s3/aws4_request
7c
--7hegMdlPdsVJ5-ijbr
Content-Disposition: form-data; name="acl"
Content-Type: text/plain
private
70
--7hegMdlPdsVJ5-ijbr
Content-Disposition: form-data; name="x-amz-signature"
Content-Type: text/plain
xxxx
98
...
--7hegMdlPdsVJ5-ijbr
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain
f
some nice data
18
--7hegMdlPdsVJ5-ijbr--
0
Мой запрос выглядит следующим образом:
val parts: Source[MultipartFormData.Part[Source[ByteString, _]], _] = Source.apply(form.dataParts.flatMap {
case (key, values) =>
values.map(value => MultipartFormData.DataPart(key, value): MultipartFormData.Part[Source[ByteString, _]])
} ++ form.files)
wsClient
.url("http://localhost:8000")
.post(parts)
Что я делаю не так?