Play Framework:POST 带参数的请求

Play Framework: POST request with parameters

在互联网上四处寻找,我看到了使用参数创建 POST 请求的不同方法:

WS.url("https://domain.com/xyz").post(
  "param1=value1&param2=value2"
)

WS.url("https://domain.com/xyz").post(Map(
  "param1" -> Seq("value1"),
  "param2" -> Seq("value2")
))

WS.url("https://domain.com/xyz")
  .withQueryString(("param1", "value1"), ("param2", "value2"))
  .post("")

上面的代码片段是否产生相同的 POST 请求?是否必须指定内容类型application/x-www-form-urlencoded?

是否必须设置内容类型取决于您使用的 WebService。一些网络服务允许您使用各种内容类型来发出请求(通常是 JSON 和 XML)。

前两个应该产生相同的结果,第三个可能不会,因为数据将(应该)添加到 url 而不是请求的正文。