如何使用 Spray 在 Http Post 中发送 FormData
How to send FormData In Http Post using Spray
我想用我的 Spray Client 发送一个 post 具有此内容类型的请求
Content-Type: application/x-www-form-urlencoded
我相信我需要为此使用对象 FormData :
var fD = new FormData(Seq("UserID:" -> "123", "PWD" -> "123" , "Brand" -> "123"))
但我愿意接受其他解决方案。
编辑:
我试过这样发送:
implicit val system = ActorSystem("Client")
var fD = FormData(Map("UserID" -> "123", "PWD" -> "123" , "Brand" -> "123"))
import system.dispatcher // execution context for futures below
val log = Logging(system, getClass)
log.info("Sending test Msg")
val pipeline = sendReceive ~> unmarshal[FormData]
var startTimestamp = System.currentTimeMillis()
val responseFuture = pipeline {
Post(url, fD)
}
responseFuture.onComplete(x=> println(s"Request completed in ${System.currentTimeMillis() - startTimestamp} millis.\n" +
s"Recived :"+x.get)
)
我遇到了这个错误:
spray.httpx.PipelineException: UnsupportedContentType(Expected 'application/x-www-form-urlencoded')
我做错了什么?感谢帮手。
您基本上已经回答了您自己的问题——您将要坚持使用 FormData。不过有几件小事:
- 由于您使用的是 FormData 案例 class,您可以删除
"new".
- FormData 的伴随对象将允许您传入
一个 Map 而不是一个元组序列。
我想用我的 Spray Client 发送一个 post 具有此内容类型的请求
Content-Type: application/x-www-form-urlencoded
我相信我需要为此使用对象 FormData :
var fD = new FormData(Seq("UserID:" -> "123", "PWD" -> "123" , "Brand" -> "123"))
但我愿意接受其他解决方案。
编辑:
我试过这样发送:
implicit val system = ActorSystem("Client")
var fD = FormData(Map("UserID" -> "123", "PWD" -> "123" , "Brand" -> "123"))
import system.dispatcher // execution context for futures below
val log = Logging(system, getClass)
log.info("Sending test Msg")
val pipeline = sendReceive ~> unmarshal[FormData]
var startTimestamp = System.currentTimeMillis()
val responseFuture = pipeline {
Post(url, fD)
}
responseFuture.onComplete(x=> println(s"Request completed in ${System.currentTimeMillis() - startTimestamp} millis.\n" +
s"Recived :"+x.get)
)
我遇到了这个错误:
spray.httpx.PipelineException: UnsupportedContentType(Expected 'application/x-www-form-urlencoded')
我做错了什么?感谢帮手。
您基本上已经回答了您自己的问题——您将要坚持使用 FormData。不过有几件小事:
- 由于您使用的是 FormData 案例 class,您可以删除 "new".
- FormData 的伴随对象将允许您传入 一个 Map 而不是一个元组序列。