withFormUrlEncodedBody输入的数据类型是什么?

时间:2015-02-24 19:30:45

标签: scala playframework-2.0

def MakeRequest(method:String,url:String, data : Map[String,String]) = {
    route(FakeRequest(method,url).withHeaders("X-Requested-With" -> "1").withFormUrlEncodedBody(data)).get
  }

错误发生在withFormUrlEncodedBody(data)。它表示expect(String,String),actual:Map [String,String]。究竟是什么(String,String)数据类型?

我使用data:(String,String)但输入只接受1个映射。它会接受muptiple映射。以下代码无需传递参数即可运行:

route(FakeRequest(method,url).withHeaders("X-Requested-With" -> "1").withFormUrlEncodedBody("a" -> "b", "c" -> "d")).get

1 个答案:

答案 0 :(得分:1)

如果您查看documentation,则会看到此类型为(String, String)*。首先(T1,T2)代表Tuple2[T1,T2]。其次,*代表可变长度参数,这意味着它接受您要发送的Tuple2List。这可以是Seq或其他类型的def MakeRequest(method:String,url:String, data : (String,String)*) = { route(FakeRequest(method,url) .withHeaders("X-Requested-With" -> "1") .withFormUrlEncodedBody(data:_*)).get }

因此,以您的原始示例为例,您可以执行以下操作:

{{1}}