· 8 years ago · Dec 03, 2017, 08:02 PM
1import java.io.BufferedReader;
2import java.io.InputStream;
3import java.io.InputStreamReader;
4import java.net.URL;
5import java.nio.charset.Charset;
6import org.json.JSONObject;
7
8/**
9 * Validates Google reCAPTCHA V2 or Invisible reCAPTCHA.
10 * @param secretKey Secret key (key given for communication between your site and Google)
11 * @param response reCAPTCHA response from client side. (g-recaptcha-response)
12 * @return true if validation successful, false otherwise.
13 */
14public static boolean isCaptchaValid(String secretKey, String response) {
15 try {
16 String url = "https://www.google.com/recaptcha/api/siteverify?"
17 + "secret=" + secretKey
18 + "&response=" + response;
19 InputStream res = new URL(url).openStream();
20 BufferedReader rd = new BufferedReader(new InputStreamReader(res, Charset.forName("UTF-8")));
21
22 StringBuilder sb = new StringBuilder();
23 int cp;
24 while ((cp = rd.read()) != -1) {
25 sb.append((char) cp);
26 }
27 String jsonText = sb.toString();
28 res.close();
29
30 JSONObject json = new JSONObject(jsonText);
31 return json.getBoolean("success");
32 } catch (Exception e) {
33 return false;
34 }
35}
36
37if(isCaptchaValid("enter_your_key_here", request.getParameter("g-recaptcha-response"))){
38 //valid
39}