使用Akka HTTP上传多部分表单数据
我试图弄清楚如何创建一个由多个部分组成的表单数据请求 使用Akka HTTP(客户端API),但我找不到表达表单数据的方法使用Akka HTTP上传多部分表单数据,akka,akka-http,Akka,Akka Http,我试图弄清楚如何创建一个由多个部分组成的表单数据请求 使用Akka HTTP(客户端API),但我找不到表达表单数据的方法 有人知道如何创建需要文件或输入流的表单数据吗?我想现在有点晚了,但它有一个客户端和一个服务器 我复制了相关部分 def createEntity(file: File): Future[RequestEntity] = { require(file.exists()) val formData = Multipart.FormData(
有人知道如何创建需要文件或输入流的表单数据吗?我想现在有点晚了,但它有一个客户端和一个服务器 我复制了相关部分
def createEntity(file: File): Future[RequestEntity] = {
require(file.exists())
val formData =
Multipart.FormData(
Source.single(
Multipart.FormData.BodyPart(
"test",
HttpEntity(MediaTypes.`application/octet-stream`, file.length(), SynchronousFileSource(file, chunkSize = 100000)), // the chunk size here is currently critical for performance
Map("filename" -> file.getName))))
Marshal(formData).to[RequestEntity]
}
def createRequest(target: Uri, file: File): Future[HttpRequest] =
for {
e ← createEntity(file)
} yield HttpRequest(HttpMethods.POST, uri = target, entity = e)
实现这一目标的最简单方法是:
val formData = Multipart.FormData.
fromFile("<FORM_DATA_KEY>",
MediaTypes.`application/octet-stream`,
file = file,
100000)
val httpRequest = HttpRequest(HttpMethods.POST, uri = target, entity = formData.toEntity)
val formData=Multipart.formData。
fromFile(“”,
MediaTypes.`application/octet stream`,
file=file,
100000)
val httpRequest=httpRequest(HttpMethods.POST,uri=target,entity=formData.toEntity)
在第一行,您还可以使用Multipart.FormData.fromPath
,它将接受文件路径而不是文件对象本身