multipart/mixed
リクエストをクライアントのakkaでどのように作成できますか?Scala(JSON +ファイル)でマルチパート/混合HTTPRequestを作成する方法
multipart/form-data
は、multipart/mixed
と99%類似していますが、akka-httpは、類似性にもかかわらず前者に便利な方法しか提供していません。
val jsonPayload = DataSourceSingleUploadRequest(
"datasource-name",
"datasource-username",
"datasource-password",
)
import io.circe.generic.auto._, io.circe.syntax._
def createEntity: RequestEntity = {
val fileFormPart = Multipart.FormData.BodyPart.fromPath("datasource", ContentTypes.`application/octet-stream`, Paths.get(extractFilePath))
val jsonRequestFormPart = Multipart.FormData.BodyPart("request_payload", HttpEntity(ContentTypes.`application/json`, jsonPayload.asJson.noSpaces))
Multipart.FormData(
fileFormPart,
jsonRequestFormPart
).toEntity()
}
Multipart.MixedData
が理想的です。私はすでにちょうどMEDIATYPEを置き換えるためにいくつかのソリューションを試みたが、それらのどれも成功しませんでした:
- クラスと特徴が封入されているので、私は
- は、カスタム実装を作成することはできませんオーバーライドすることはできません(の99%を再利用します
Multipart-Formdata
)は、Multipart.Formdata
がプライベートコードを使用しているため、Multipart
の特性の一部です。
私は簡潔に言えば、multipart/form-data
と99%類似しているmultipart/mixed
リクエストを作成する手助けをしたいと思います。
PS:サーバは本当にmultipart/form-data
を受け入れない:/
編集:完全を期すため、DataSourceSingleUploadRequest
はケースクラスであると私はアッカ-HTTPのバージョンを使用しているキルケ