【问题标题】:Ktor Netty Server sending an empty responseKtor Netty 服务器发送空响应
【发布时间】:2019-03-10 04:33:28
【问题描述】:

我正在使用 ktor 0.9.5。我正在尝试一个简单的例子。但是当尝试连接到服务器时,我得到 ERR_EMPTY_RESPONSE。这是我的代码。

fun main(args: Array<String>) {
    embeddedServer(Netty, port = 8080, host = "localhost") {
        install(DefaultHeaders)
        install(CallLogging)
        routing {
            get(path = "/") {
                call.respondText("Hello World!!")
            }

        }
    }.start()
}

做了一些研究,我发现将项目更改为 Maven 可以解决问题,但由于我的组织规则,我不能这样做。任何其他解决方案...在此先感谢。

我在call.respondText("Hello World!!") 之前添加了一个println("sometext"),但它从未执行过。

【问题讨论】:

  • "将项目更改为 Maven" - 表示您当前正在使用 gradle?您发布的代码使用 gradle 对我来说很好。你能告诉我们你正在发出的http请求吗?
  • 实际上我不能使用任何依赖工具,甚至不能使用 gradle。我的公司代理不要让我通过回购。我自己下载了每一个依赖项(真的很辛苦)你不认为我错过了任何依赖,因为服务器启动时没有 ClassNotFound Exception。
  • 有任何方法可以下载依赖列表而不实际下载它。所以我可以一一检查我需要什么,我有什么。

标签: kotlin netty ktor


【解决方案1】:

由于 ERR_EMPTY_RESPONSE 错误,我猜您是从 Google Chrome 浏览器请求服务器。正确的 ? 您是否尝试从另一台计算机连接到服务器?如果是这样,它将不起作用,因为您已将服务器设置为仅响应来自 localhost 的请求。

embeddedServer(Netty, port = 8080, host = "localhost")

即使你添加了一个 println() 它也不会执行。 尝试从 EmbeddedServer() 参数中删除 host = "localhost" 重新测试。

【讨论】:

  • 你说得对,我正在使用谷歌浏览器,但我的 url 请求是 127.0.0.1:8080。所以它是本地的。
  • 通过尝试删除本地主机,它仍然默认使用 127.0.0.1 所以同样的问题。
  • @DarioDeyaDiaz 你解决过这个问题吗?我遇到了同样的麻烦I asked the question here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多