首页 > 解决方案 > 如何在 Kotlin 中使用 okhttp3 进行气流实验 api?

问题描述

我需要将此命令转换为 okhttp 请求(conf键的值必须是字符串)

curl -X POST \   http://localhost:8080/api/experimental/dags/<DAG_ID>/dag_runs \   -d '{"conf":"{\"key\":\"value\"}"}'

此代码的响应

val conf = "'{\"conf\":\"{\\\"key\\\":\\\"$value\\\"}\"}'"
        val body = RequestBody.create(MediaType.parse("application/json"), conf)
        val request = Request.Builder()
                .url(url)
                .post(body)
                .header("Content-Type", "application/json")
                .build()

返回

400坏

要求

错误的请求

浏览器(或代理)发送了此服务器无法理解的请求。

标签: kotlinairflowokhttp

解决方案


原因可能是格式错误的 JSON。尝试conf使用 Kotlin 的原始字符串分配变量:

val conf = """{"conf":"{\"key\":\"$value\"}"}"""

推荐阅读