Загрузка файла с несколькими частями 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)

0 ответов

Другие вопросы по тегам