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。
我读了这个 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。