繁体   English   中英

通过 Play WS API 在正文中发送带有参数的 POST 请求

[英]Send POST request with parameters in body via Play WS API

目前,我通过 Play WS API 发送 get 请求,如下所示:

wsClient
    .url(myUrl)
    .withQueryString(getParams(): _*)
    .get()

现在我想将此调用更改为使用 HTTP Post。 调用以下内容时:

    wsClient
        .url(myUrl)
        .withMethod("POST")
        .withBody(getParams(): _*)
        .get()

我收到以下错误:

无法将 Seq[(String, String)] 的实例写入 HTTP 响应。 尝试定义一个 Writeable[Seq[(String, String)]]

我猜这是因为方法getParams返回Seq[(String, String)]

我怎样才能解决这个问题?

使用 http post 键值对时,使用内容类型application/x-www-form-urlencoded

这是发帖的代码

 client.url(myUrl)
    .withHeaders("Content-type" -> "application/x-www-form-urlencoded")
    .post(getParams.map { case (k, v) => s"$k=$v"}.mkString("&"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM