我正在使用Play框架调用一个web服务。功能是:
def addCustomerFunction = Action.async { implicit request =>
val (firstName, lastName, accountBalance, dateOfBirth) = addCustomerForm.bindFromRequest.get
WS.url("http://localhost:8080/customer").post(Map("firstName" -> Seq(firstName), "lastName" -> Seq(lastName),
"accountBalance" -> Seq(accountBalance), "birthday" -> Seq(dateOfBirth))).map { response =>
Ok(response.body)
}
}
我得到的错误是:
Cannot write an instance of scala.collection.immutable.Map[String,Seq[Any]] to HTTP
response. Try to define a Writeable[scala.collection.immutable.Map[String,Seq[Any]]]
我不明白我做错了什么?有什么想法吗?
正如您获得的输出中所解释的,Map不是可写的实例。你应该寄一封可写的邮件。您必须使用可写对象来转换数据,例如,将数据转换为JSON并使用可写对象。请注意,它可能不是外部Web服务的有效输入,因此JSON可能不起作用,但其思想就在这里。
您可以在这里查看更多细节:如何在play 2.1中为WS. post()设置参数Java
答案是Java,而不是Scala。您可以尝试在Scala中使用withQueryString。
. post()
需要一个Map[String, Seq[String]]
,但是你给它一个Map[String, Seq[any]]
。传递到Map
的所有值都应该是一个字符串
。您可能传递了一个Int
作为参数。将其转换为toString
,错误将消失。
WS.url("http://localhost:8080/customer")
.post(Map(
"firstName" -> Seq(firstName),
"lastName" -> Seq(lastName),
"accountBalance" -> Seq(accountBalance.toString),
"birthday" -> Seq(dateOfBirth.toString)))
.map { response =>
Ok(response.body)
}
下面的代码工作:
def addCustomerFunction = Action.async { implicit request =>
val (firstName, lastName, accountBalance, dateOfBirth) = addCustomerForm.bindFromRequest.get
val data = Json.obj(
"firstName" -> firstName,
"lastName" -> lastName,
"accountBalance" -> accountBalance,
"birthday" -> dateOfBirth
)
WS.url("http://localhost:8080/customer").post(data).map { response =>
Ok(response.body)
}
}
谢谢你!
我如何描述HAL中的帖子链接? 我正在设计一个带有HATEOAS约束的RESTful API,类似于Wikipedia的HATEOAS示例,但用HAL JSON表示(为了清晰起见,删除了scheme、host等): 为了执行“转移”操作,客户大概会这样做: 通过GET调用“transfer”链接会在“transfers”中创建一个新的ressource。但是创建一个新资源并不是幂等的,它“感觉”不
圈子帖子列表 圈子帖子详情 圈子帖子创建 圈子帖子更新 圈子帖子删除 我的帖子列表 全部帖子列表包含搜索 圈子帖子列表 GET /groups/:group/posts 响应 status 200 参数说明 名称 类型 说明 type string 默认:latest_post, latest_post 最新帖子,latest_reply最新回复 limit integer 默认 15 ,数据
我有这些桌子; 我试图抓取所有的帖子,由用户正在关注的用户和用户自己的帖子。 我试过了 但问题是,我无法从这个查询中获取用户的帖子。我用or_where etc尝试了其他方法,我能够获得用户的帖子,只是数据增加了三倍:(有人能帮我一下吗?非常感谢。 哦,在普通的Mysql中,它;
我觉得这个问题有一个非常简单的解决方案。但是,在尝试解决了大约3个小时未果后,我谦卑地来找你。 一个自定义的帖子类型,乐队,已经创建,并有几个自定义字段(这是通过高级自定义字段插件创建的。) 我将如何获得和显示的内容(特别是自定义字段数据)的特定带条目(使用其ID或标题或段塞)内的一个常规的帖子?(见下图) 我们必须提供ID/title/slug,以便它知道要显示的band post的内容 短代码
问题内容: 我刚刚开始学习Angular.js。如何在Angular.js中重新编写以下代码? 到目前为止,这是我的- html 我的方向正确吗? 问题答案: 在当前函数中,如果要分配给一个promise对象,则返回一个promise对象。 因此,除了分配给$ http之外,您还应该在成功的内部分配,如下所述:
我找了很多,但没有找到任何答案,所以我希望你能帮助我! 我有三个表:post、users和post\U users。Post_users包含两列:user_id和Post_id。 我需要得到一个有口才的用户的所有帖子。有什么想法吗? 非常感谢你! (如果这个问题已经存在,我很抱歉,但我还没有找到它)