Загрузка файла с несколькими частями Vert.x - перевод кода
Я работаю над программой scala, которая должна вызывать веб-службу и загружать PDF-документ. Я реализовал Систему для прототипирования с помощью ScalaJ (асинхронная альтернатива). Я изменил вызов на Vert.x, но получаю внутреннюю ошибку сервера 500. Пока знаю:
- Вызов ScalaJ все еще работает, поэтому с API нет проблем.
- С Vert.x проблем нет, так как я смог перевести все остальные вызовы в Vert.x - я просто застрял на загрузке составной формы.
- Токен действителен.
- Атрибуты названы правильно.
- URL правильный.
Можете ли вы показать мне, где я сделал ошибку при "переводе" ScalaJ на Vert.x?
Это работает
val bytes: Array[Byte] = Files.readAllBytes(Paths.get(VALID_FILE_PATH))
Http(MYURL)
.header("Accept-Encoding", "gzip,deflate")
.header("Content-Type", "multipart/form-data")
.header("client", CLIENT)
.header("secret", SECRET)
.header("Authorization" , "Bearer " + MYTOKEN)
.postMulti(MultiPart("attributeName", "mycooldoc.pdf", "application/pdf", bytes))
.asString
Это не работает, и я не знаю, что я пропустил
val request = client.requestAbs(HttpMethod.POST, MYURL)
.putHeader("Accept-Encoding", "gzip,deflate")
.putHeader("Content-Type", "multipart/form-data")
.putHeader("client", CLIENT)
.putHeader("secret", SECRET)
.bearerTokenAuthentication(MYTOKEN)
.ssl(true)
val path = VALID_FILE_PATH
val mpf = MultipartForm.create().binaryFileUpload("attributeName", "mycooldoc.pdf", path, "application/pdf")
try request.sendMultipartForm(mpf, responseHandler(_, promise)) catch {
case e: Throwable => {
promise.complete(Try(MyResponse(e.toString, HttpStatusCodes.STATUS_CODE_SERVER_ERROR)))
}
}
Await.result[MyResponse](promise.future, Duration.Inf)