Kotlin Vert.x WebClient Http Get返回400
我有一个非常简单的垂直线:Kotlin Vert.x WebClient Http Get返回400,kotlin,vert.x,Kotlin,Vert.x,我有一个非常简单的垂直线: class PingVerticle : AbstractVerticle() { override fun start() { var options = WebClientOptions().setSsl(true).setVerifyHost(false).setTrustAll(true); WebClient.create(vertx, options) .get(443, "http
class PingVerticle : AbstractVerticle() {
override fun start() {
var options = WebClientOptions().setSsl(true).setVerifyHost(false).setTrustAll(true);
WebClient.create(vertx, options)
.get(443, "https://google.com", "")
.ssl(true)
.send { r ->
if(r.succeeded()) {
var r = r.result();
println(r.statusCode())
} else {
println("failed")
}
}
}
}
我总是得到400分的结果——糟糕的要求。你知道我做错了什么吗?。你使用的方法有3个参数:
- 港口
- 主人
- 相对URI
webClient
.get(443, "google.com", "")
.ssl(true)
或者,仅使用:
问题作者更新:请阅读此答案下的讨论,以了解全文。尽管答案是有道理的,但由于问题的表述可能很糟糕,这个答案并不能完全解决问题,但下面的评论可能会解决问题。感谢您的回复。但您提出的两种变体都会生成404-notfound状态码。也许Google try不喜欢没有
Accept
标题的请求。请尝试添加Accept://*
,不幸的是,这对我也没有帮助。整个问题都是不可思议的,因为它不应该那么难:)它对我和其他人都很有效。您的环境中可能有某种东西(代理?)导致此问题。您可以从打印响应正文开始,看看服务器是否会告诉您这个问题。幸运的是,这最后一句话真是恰到好处!我安装了NordVPN,也许它为DNS配置设置了一些代理。在我打印了回复正文之后,问题就很清楚了,其中说明了NordVPN的一些回复,这些DNS不再工作了,或者其他什么。在删除代理后,它开始按预期工作。考虑到纯Java HttpClient、.Net HttpClient和NodeJS http客户端即使不改变这个部分也能工作,仍然不知道为什么Vert.x如此敏感。
webClient
.getAbs("https://google.com")