如何使用Akka HTTP表示表单数据请求?

编程入门 行业动态 更新时间:2024-10-09 21:27:51
本文介绍了如何使用Akka HTTP表示表单数据请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想为 Facebook API创建一个表单数据http请求使用Akka HTTP。在curl中,请求示例看起来像:

I want to create a form-data http request to Facebook API using Akka HTTP. In curl, the request example looks like:

curl \ -X POST \ "graph-video.facebook/v2.3/1533641336884006/videos" \ -F "access_token=XXXXXXX" \ -F "upload_phase=transfer" \ -F "start_offset=0" \ -F "upload_session_id=1564747013773438" \ -F "video_file_chunk=@chunk1.mp4"

所以我为请求有效载荷表示创建了以下模型:

So I created a following model for a request payload representation:

case class FBSingleChunkUpload(accessToken: String, sessionId: String, from: Long, to: Long, file: File) //file is always ~1Mb

然后我要使用:

Http().cachedHostConnectionPoolHttps[String]("graph-video.facebook")

但是我不知道如何将 FBSingleChunkUpload 转换为正确的 HttpRequest : (

But I don't know how to convert FBSingleChunkUpload to the correct HttpRequest :(

能否给我一个提示,如何代表使用Akka HTTP这样的请求?

Can you give me a hint, how to represent a such type of requests using Akka HTTP?

推荐答案

有一个 FormData 实体类型

val fBSingleChunkUpload = ??? HttpRequest(method = HttpMethods.POST, entity = FormData(("accessToken", fBSingleChunkUpload.accessToken), ...).toEntity)

此外,您还可以检查文件是否与 Multipart.FormData

Additionally for the file you could check if it works with Multipart.FormData

val fileFormPart = Multipart.FormData .BodyPart("name", HttpEntity(MediaTypes.`application/octet-stream`, file.length(), FileIO.fromPath(file.toPath))) val otherPart = Multipart.FormData.BodyPart.Strict("accessToken", "the token") val entity = Multipart.FormData(otherPart, fileFormPart).toEntity

更多推荐

如何使用Akka HTTP表示表单数据请求?

本文发布于:2023-11-25 10:21:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1629374.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表单   如何使用   数据   HTTP   Akka

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!