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")