Я использую капчу в моем пользовательском приложении, попытался проверить ответ Google Recaptcha с помощью метода ниже, который выдает исключение, как показано ниже
java .io.IOException: java. net .UnknownHostException: Обычно это временная ошибка при разрешении имени хоста. Это означает, что локальный сервер не получил ответ от авторитетного сервера (www.google.com)
Есть идеи?
protected boolean validateChallenge(PortletRequest portletRequest)
throws CaptchaException {
HttpServletRequest request = PortalUtil.getHttpServletRequest(portletRequest);
String captchaResponseValue = ParamUtil.getString(portletRequest, "captchaResponseId");
String url = "http://www.google.com/recaptcha/api/siteverify";
Http.Options options = new Http.Options();
try {
url = HttpUtil.addParameter(url,"secret","<private-key>");
} catch (SystemException se) {
System.out.println(""+se);
}
url = HttpUtil.addParameter(url, "response", captchaResponseValue);
url = HttpUtil.addParameter(url, "remoteip", request.getRemoteAddr());
options.setLocation(url);
options.setPost(true);
String content = null;
try {
content = HttpUtil.URLtoString(options);
}
catch (IOException ioe) {
throw new CaptchaTextException();
}
if (content == null) {
throw new CaptchaTextException();
} else if (Validator.isNotNull(content)) {
JSONObject jsonObject;
boolean isReCaptcha = false;
try {
jsonObject = JSONFactoryUtil.createJSONObject(content);
isReCaptcha = jsonObject.getBoolean("success");
} catch (JSONException e) {
System.out.println("reCAPTCHA did not return a valid result: " + content);
}
return isReCaptcha;
}
return false;
}