首页 > 解决方案 > Scala中的HTTP Post请求使用JSON正文中的变量

问题描述

我正在尝试在使用 JSON 正文的 Scala 中发出 HTTP Post 请求,例如:

{
    "x": "hello",
    "y": "goodbye",
    "z": "hi"
}

我将“hello”和“goodbye”存储在我传递给发出请求的函数的变量中。

我不知道如何格式化 JSON 正文以放入.postData请求的一部分。会不会是这样的:

val a = "hello"
val b = "goodbye"

val request = Http(url).postData("{"x" = "${a}", "y" = "${b}", "z" = "hi"}")
    .header("content-type", "application/json")

我的问题是具体如何格式化这部分:

postData("{"x" = "${a}", "y" = "${b}", "z" = "hi"}")

标签: jsonscalapostscalaj-http

解决方案


以以下格式编写响应:

val a = "hello"
val b = "goodbye"

val responseData =
  s"""
     | {"x": ${a},
     | "y": ${b},
     | "z": "hi"
     |}""".stripMargin


val request = Http("url").postData(responseData).header("content-type", "application/json").option(HttpOptions.method("POST"))

推荐阅读