首页 > 解决方案 > ScalaJ vs Vertx - 相同的http调用不同的结果

问题描述

我有两段 scala 代码可以将文件上传到服务器。ScalaJ 版本有效,Vertx 版本无效。有人可以告诉我如何确定实际拨出电话吗?其他 Vertx 调用(没有文件上传)工作正常。

ScalaJ(工作即服务器以 200 响应)

val bytes: Array[Byte] = Files.readAllBytes(Paths.get("myfile.pdf"))

Http(myurl)
  .header("Accept-Encoding", "gzip,deflate")
  .header("Content-Type", "multipart/form-data")
  .header("x-client-id", CLIENT_ID)
  .header("x-client-secret", CLIENT_SECRET)
  .header("Authorization" , "Bearer " + mytoken)
  .postMulti(MultiPart("registrationFormPDF", "name.pdf", "application/pdf", bytes))
  .asString

Vertx(不工作,即服务器以 500 响应)

val request = client.requestAbs(HttpMethod.POST, myurl)
  .putHeader("Accept-Encoding", "gzip,deflate")
  .putHeader("Content-Type", "multipart/form-data")
  .putHeader("x-client-id", CLIENT_ID)
  .putHeader("x-client-secret", CLIENT_SECRET)
  .putHeader("Authorization" , "Bearer " + mytoken)
  .ssl(true)
  .timeout(TIMEOUT)

val bytes: Array[Byte] = Files.readAllBytes(Paths.get("myfile.pdf"))
val buffer = Buffer.buffer(bytes)

val multiPartForm = MultipartForm.create()
  .binaryFileUpload("registrationFormPDF", "name.pdf", buffer, "application/pdf")

val promise = Promise[MyResponse]()

request.sendMultipartForm(multiPartForm.get, responseHandler(_, promise))

标签: scalahttpnetworkingslickvert.x

解决方案


推荐阅读