gpt4 book ai didi

java - Spring Boot 验证码配置

转载 作者:行者123 更新时间:2023-12-02 12:17:43 25 4
gpt4 key购买 nike

我正在 Spring Boot 上开发一个应用程序,但是出于安全目的,我需要在各种表单上集成 recaptcha,但是连接总是导致连接超时,我使用 postman 验证了 api 和 url,它通过了并且返回一个答案,但是在 Java 代码时间耗尽时,我收到错误 java.net.ConnectException: Connection timed out: connect 我不知道我做错了什么我使用 postman 代码提供“Java OK HTTP”。代码是下一个。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
.url("https://www.google.com/recaptcha/api/siteverify?secret=XX&response=XXX")
.get()
.addHeader("cache-control", "no-cache")
.addHeader("postman-token", "f47548e1-a9e0-9065-7f76-dced294bddcb")
.build();

Response response = client.newCall(request).execute();

但是我似乎不知道错误出在哪里,有人可以帮助我吗?

最佳答案

您遇到连接超时错误,因此我们可以说:

  • 由于这不是未知主机错误,因此您必须有一个可以为 www.google.com 提供 IPv4 或 IPv6 地址的 DNS
  • 由于这不是目标无法到达错误,因此您有一条到网关的路由,并且该网关是具有默认路由的本地路由器。

因此,connect 超时意味着您已向目的地发送了一个 TCP SYN 数据包,并且该数据包已在您的本地网络中的某个位置或在您的网络与 Internet 之间的接口(interface)处被丢弃, 在防火墙中(因为您没有收到任何表示出现问题的 ICMP/ICMPv6 数据包 - 标准路由器应该向您发送此类信息)。

问题出在第一个数据包 (TCP SYN) 上,因此您的问题与源代码中的 addHeader() 调用无关。在您的情况下,这些 header 永远不会发送并出现此错误。

由于 www.google.fr 有 IPv4 和 IPv6 地址,因此有两种可能性:

  • 您有一个发送 RA 通告的本地 IPv6 路由器,但未通过 IPv6 连接到 Internet。试试这个来检查这个案例:

替换:

https://www.google.com/recaptcha/api/siteverify?secret=XX&response=XXX

作者:

https://[2a00:1450:400c:c04::6a]/recaptcha/api/siteverify?secret=XX&response=XXX

如果您继续出现超时,则表示您的 IPv6 路由器配置不正确。

  • 或者您有防火墙并需要使用代理

替换:

https://www.google.com/recaptcha/api/siteverify?secret=XX&response=XXX

作者:

https://74.125.206.104/recaptcha/api/siteverify?secret=XX&response=XXX

如果您继续超时,则意味着您有防火墙并且应该使用代理。

关于java - Spring Boot 验证码配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46040726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com