kotlin - 如何使用 Ktor 服务器向其他服务器发送 POST 请求?

标签 kotlin server backend ktor

我使用 IDEA 生成模板,并注意到 Application.module 中的 runBlocking 如下:

    runBlocking {
    // Sample for making a HTTP Client request
        val message = client.post<JsonSampleClass> {
            url("http://127.0.0.1:8080/path/to/endpoint")
            contentType(ContentType.Application.Json)
            body = JsonSampleClass(hello = "world")
        }
   }

但是当我这样写向另一个服务器(例如获取天气的服务器)发送 Post 请求时,我得到:

java.io.IOException: Broken pipe

我不知道是不是我写的方式不对或者是写错了地方。

最佳答案

当然,日期类值得 JsonSampleClass,您需要像过度增长响应中那样更改此类或使用 HttpResponse。 示例:

runBlocking {
// Sample for making a HTTP Client request
    val message = client.post<HttpResponse> { // or your data class
        url("url")
        contentType(ContentType.Application.Json)
        setBody(JsonSampleClass(hello = "world"))
    }
}

https://ktor.io/docs/request.html#body

关于kotlin - 如何使用 Ktor 服务器向其他服务器发送 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64551352/

相关文章:

android - 脱糖后奇怪的包名

java - Android Studio 3.1.3 - Unresolved reference : R - Kotlin

kotlin - Kotlin 协程如何比 RxKotlin 更好?

azure - 如何将 Azure 升级 A 系列 VM 升级到 D 系列 VM?

java - 如何在后端获取 HTTP 请求的用户所在国家/地区?

android - 主构造函数的 Kotlin Dagger2 错误

c - 本地主机上的服务器似乎不接受连接

php - 在并行 plesk 服务器中安装 codeigniter

javascript - 我应该将前端代码放在后端项目的什么位置以及如何/何时运行它?

mysql - ReactJS 与数据库的连接