在本地环境中使用 Google reCAPTCHA 时,是不是有办法解决 ResourceAccessException?
Posted
技术标签:
【中文标题】在本地环境中使用 Google reCAPTCHA 时,是不是有办法解决 ResourceAccessException?【英文标题】:Is there anyway to work around the ResourceAccessException when working with Google reCAPTCHA in local environment?在本地环境中使用 Google reCAPTCHA 时,是否有办法解决 ResourceAccessException? 【发布时间】:2020-10-17 01:18:51 【问题描述】:我正在尝试在我的本地环境 Java(SpringBoot) 代码中验证 Google reCAPTCHA
响应。无论我尝试使用什么方法进行 REST 调用,我都会不断收到此异常。但是,当我从 PostMan 访问相同的 API 以及在我们的 Azure 平台上部署代码时,我能够得到 Google 的响应。
有没有办法解决这个问题?
以下是网址:
https://www.google.com/recaptcha/api/siteverify?secret=<secrete_key>&response=<gRecaptchaResponse>
下面是被抛出的异常:
对于路径 [] 上下文中的 servlet [dispatcherServlet] 抛出异常 [请求处理失败;嵌套异常是 org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://www.google.com/recaptcha/api/siteverify": Connection reset;嵌套异常是 java.net.SocketException: Connection reset] with root cause
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[na:1.8.0_161]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_161]
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[na:1.8.0_161]
at sun.security.ssl.InputRecord.read(InputRecord.java:503) ~[na:1.8.0_161]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983) ~[na:1.8.0_161]
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385) ~[na:1.8.0_161]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413) ~[na:1.8.0_161]
【问题讨论】:
【参考方案1】:您可以将其包装在 try-catch 块中:
try
catch (SSLException e)
catch (SocketException e)
catch (IOException ie)
【讨论】:
以上是关于在本地环境中使用 Google reCAPTCHA 时,是不是有办法解决 ResourceAccessException?的主要内容,如果未能解决你的问题,请参考以下文章
SweetAlert提示中的Google reCaptcha
使用 Selenium 时 Google 的 reCAPTCHA 被破坏