Ktor Netty 服务器发送空响应
Posted
技术标签:
【中文标题】Ktor Netty 服务器发送空响应【英文标题】:Ktor Netty Server sending an empty response 【发布时间】: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。 有任何方法可以下载依赖列表而不实际下载它。所以我可以一一检查我需要什么,我有什么。 【参考方案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以上是关于Ktor Netty 服务器发送空响应的主要内容,如果未能解决你的问题,请参考以下文章