WS Play 框架 - 如何使用 post 发送文件

WS Play Framework - How send File with post

我读了这个 https://www.playframework.com/documentation/2.4.x/ScalaWS 但我不知道如何发送 post 数据 + 文件。

示例: 我想用这个 API https://code.google.com/p/imagebam-api/wiki/UploadImage 上传图片,但我不知道如何。我试过了:

val file:File = new File("c:/file/sample.jpg")

   val postMap = Map(
      "oauth_consumer_key"      -> Seq(apiKey.toString),
      "oauth_signature_method"  -> Seq(oauthSignatureMethod.toString),
      "oauth_signature"         -> Seq(oauthSignature.toString),
      "oauth_timestamp"         -> Seq(oauthTimestAmp.toString),
      "oauth_nonce"             -> Seq(oauthNonce.toString),
      "oauth_token"             -> Seq(oauthToken.toString),
      "content_type"            -> Seq("adult"),
      "thumb_format"            -> Seq("JPG"),
      "thumb_size"              -> Seq("350x350"),
      "thumb_cropping"          -> Seq(0.toString),
      "thumb_info"              -> Seq(1.toString),
      "response_format"         -> Seq("JSON"),
      "image"                   -> Seq(file)
    )

    val bb_SendImg = WS.url("http://www.imagebam.com/sys/API/resource/upload_image").post(postMap)

但这不起作用。任何建议或帮助我如何做到这一点?

你不能 post 一个 multipartform-data with play WS。

它是错误跟踪器中最古老的 improvement request 之一。

此问题中有一些解决方法。例如,您可以使用 scalaj-http