Scala Play中的动态构建请求

时间:2018-02-14 04:31:38

标签: scala playframework

在我的Play应用程序中,我构建了一个这样的请求:

val a = 10    
val b = 10
val req = ws.url(URL)
          .withHeaders("Accept" -> "application/json")
          .withQueryString("a" -> a, "b" -> b)
          .withRequestTimeout(Duration.Inf)

我要做的是从地图构建查询字符串,这会引发以下错误:

val c = Map("a" -> a, "b" -> b)
val req = ws.url(URL)
    .withHeaders("Accept" -> "application/json")
    .withQueryString(c.toSeq)
    .withRequestTimeout(Duration.Inf)

我收到类型不匹配错误:

  

Expected(String,String),actual:Seq [(String,any)]

1 个答案:

答案 0 :(得分:2)

尝试

.withQueryString(c.toSeq : _*)

我相信这种方法需要varargs。

您可能还需要将值转换为Seq[String]

.withQueryString(c.mapValues(v => Seq(v.toString)).toSeq : _*)

也许?