我需要帮助。我正在尝试使用 CURL 进行 HTTP POST 并使用喷雾路由和参数
curl -v -o UAT.json "http://*****/pvdtest1/14-JUL-2014?enriched=true" -H "Content-Type: application/json" -d '{ "text": "Test", "username": "User" }'
我的 JSON Post 是可选的,这意味着我也可以将请求作为
curl -v -o UAT.json "http://*****/pvdtest1/14-JUL-2014?enriched=true"
如果我在路由中使用
path("pvdtest1" / Segment) { (cobDate) =>
(parameters('enriched.as[Boolean] ? false) & post) {
(enriched) => {
println(" inside post")
entity(as[Message]) { message =>
println(" inside post 1")
logger.debug("User '{}' has posted '{}'", message.username, message.text)
上面的代码工作文件
但是如果我尝试使 POST 可选,它不起作用
path("pvdtest1" / Segment) { (cobDate) =>
(parameters('enriched.as[Boolean] ? false) | post) {
(enriched) => {
println(" inside post")
entity(as[Message]) { message =>
println(" inside post 1")
logger.debug("User '{}' has posted '{}'", message.username, message.text)
Error:(166, 56) type mismatch;
found : spray.routing.Directive0
(which expands to) spray.routing.Directive[shapeless.HNil]
required: spray.routing.Directive[shapeless.HList]
Note: shapeless.HNil <: shapeless.HList, but class Directive is invariant in type L.
You may wish to define L as +L instead. (SLS 4.5)
(parameters('enriched.as[Boolean] ? false) | post) {
有人可以帮忙解决问题吗?