首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >found : spray.routing.Directive0 (展开为) spray.routing.Directive[shapeless.HNil]需要: spray.routing.Directive[shapeless.HList]

found : spray.routing.Directive0 (展开为) spray.routing.Directive[shapeless.HNil]需要: spray.routing.Directive[shapeless.HList]
EN

Stack Overflow用户
提问于 2014-10-29 23:20:10
回答 1查看 522关注 0票数 1

我需要帮助。我正在尝试使用CURL来做HTTP POST &使用带有参数的喷雾路由

代码语言:javascript
复制
curl -v -o UAT.json "http://*****/pvdtest1/14-JUL-2014?enriched=true" -H  "Content-Type: application/json" -d '{ "text": "Test", "username": "User" }'

我的JSON帖子是可选的,这意味着我也可以像

代码语言:javascript
复制
curl -v -o UAT.json "http://*****/pvdtest1/14-JUL-2014?enriched=true"

在路由中如果我使用

代码语言:javascript
复制
 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设为可选,它将不起作用。

代码语言:javascript
复制
 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) {

有没有人能帮忙解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2014-10-30 00:09:44

问题是same中的|方法要求两端都是同一类型的。parameters提供一个布尔值,post没有值。&方法将这两个指令连接在一起,因此它们可能属于不同的类型。

您可以将该行更改为以下代码,以允许get和post,并捕获丰富的参数:

(get | post) { (parameters('enriched.as[Boolean] ? false)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26634177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档