日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java笔记-腾讯验证码平台使用实例

發布時間:2025/3/15 java 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java笔记-腾讯验证码平台使用实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要就是官方的這個圖:

前端調用接口,得到騰訊發過來的幾個數據,前端把這幾個數據給后端,后端拿到這些數據后傳給騰訊,讓其判斷是否正常,以及其他屬性。

程序運行截圖如下:

點擊登錄后,拖動正確進行跳轉,拖動錯誤就重新輸入

看看后臺的打印:

這個是騰訊反饋的數據,response為1說明是正常,風險等級為0

?

程序結構如下:

源碼如下:

LoginServlet.java

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils;@WebServlet(value = "/login") public class LoginServlet extends HttpServlet{private static final String APP_ID = "xxxxxxxxxx";private static final String APP_SECRET = "xxxxxxxxxx**";private static final String VERIFY_URI = "https://ssl.captcha.qq.com/ticket/verify?aid=%s&AppSecretKey=%s&Ticket=%s&Randstr=%s&UserIP=%s";public static int verifyTicket(String ticket, String rand, String userIp) {CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpGet;CloseableHttpResponse response = null;try {httpGet = new HttpGet(String.format(VERIFY_URI,APP_ID,APP_SECRET,URLEncoder.encode(ticket, "UTF-8"),URLEncoder.encode(rand, "UTF-8"),URLEncoder.encode(userIp, "UTF-8")));response = httpclient.execute(httpGet);HttpEntity entity = response.getEntity();if (entity != null) {String res = EntityUtils.toString(entity);System.out.println(res); // 臨時輸出JSONObject result = JSON.parseObject(res);// 返回碼int code = result.getInteger("response");// 惡意等級int evilLevel = result.getInteger("evil_level");// 驗證成功if (code == 1) return evilLevel;}} catch (java.io.IOException e) {// 忽略} finally {try {response.close();} catch (Exception ignore) {}}return -1;}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//驗證String ticket = request.getParameter("Ticket");String randstr = request.getParameter("Randstr");String userIP = request.getRemoteAddr();verifyTicket(ticket, randstr, userIP);response.sendRedirect("success.jsp");} }

web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name> </web-app>

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>qq</title><script src="https://ssl.captcha.qq.com/TCaptcha.js"></script><script type="text/javascript">function vail(){var vailCode = new TencentCaptcha('2047017221', function(res){if(res.ret == 0){var form = document.getElementById("form1");var ticketInput = document.getElementById("Ticket");var randstrInput = document.getElementById("Randstr");ticketInput.value = res.ticket;randstrInput.value = res.randstr;// console.log("res.ticket:" + res.ticket);// console.log("res.randstr:" + res.randstr);form.submit();}else{alert("驗證出錯!");}});vailCode.show();}</script> </head> <body> <form id="form1" method="post" action="login"><div><input id="Ticket" name="Ticket" type="hidden" value=""><input id="Randstr" name="Randstr" type="hidden" value=""><input type="button" value="登錄" id="btnOK" onclick="vail()" /></div> </form> </body> </html>

success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <h1>SUCCESS</h1> </body> </html>

porn.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>wxDemo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.5</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.11</version></dependency></dependencies></project>

?

總結

以上是生活随笔為你收集整理的Java笔记-腾讯验证码平台使用实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。