【java腾讯防水墙】
#腾讯防水墙(这里用到的kong网关)
##1.pom
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><scope>compile</scope></dependency>
public static Boolean verifyTicket(String aid, String appSecretKey, String ticket, String rand, String userIp, String baseUrl) {log.info("========userIp: {}",userIp);//IP分割String ip = editUserIp(userIp);Map<String, Object> params = new HashMap<String, Object>();params.put("aid", aid);params.put("AppSecretKey", appSecretKey);params.put("Ticket", ticket);params.put("Randstr", rand);params.put("UserIP", ip);CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpGet;CloseableHttpResponse response = null;try {httpGet = new HttpGet(buildUrlByParams(baseUrl, params));log.info("====开始进入防水墙校验new==========httpGet: {}", httpGet);response = httpclient.execute(httpGet);log.info("===response=============={}", response);HttpEntity entity = response.getEntity();if (entity != null) {String res = EntityUtils.toString(entity);log.info("==res================{}", res);JSONObject result = JSON.parseObject(res);// 返回码int code = result.getInteger("response");String err_msg = result.getString("err_msg");// 恶意等级int evilLevel = result.getInteger("evil_level");// 恶意等级log.info("腾讯返回码:" + code + "---" + "恶意等级: " + evilLevel + "-----err_msg:" + err_msg);// 验证成功if (code == 1) return true;}} catch (java.io.IOException e) {// 忽略log.error("verifyTicket fail,error: {}", e);} finally {try {response.close();} catch (Exception ignore) {}}return false;}
(内)当前方法1
private static String editUserIp(String userIp) {if (userIp.contains(",")) {int index = userIp.indexOf(",");String substring = userIp.substring(0, index);return substring;}return userIp;}private static String buildUrlByParams(String baseUrl, Map<String, Object> parameters) {if (parameters == null || parameters.isEmpty()) {return baseUrl;}baseUrl += "?";for (Map.Entry<String, Object> entry : parameters.entrySet()) {baseUrl += (entry.getKey() + "=" + entry.getValue() + "&");}return baseUrl;}
(内)当前方法2
/*** 返回请求端的IP地址*/public static String getIP(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");ip = checkIp(ip) ? ip : (checkIp(ip = request.getHeader("Proxy-Client-IP")) ? ip : (checkIp(ip = request.getHeader("WL-Proxy-Client-IP")) ? ip :request.getRemoteAddr()));return ip.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;}private static boolean checkIp(String ip) {return !isNull(ip) && !"unknown".equalsIgnoreCase(ip);}/*** 该字符串是否为null或者空串*/public static boolean isNull(String str) {return (str == null || str.equals(""));}```
【java腾讯防水墙】相关推荐
- java腾讯地图根据经纬度获取具体位置
腾讯地图 java腾讯地图根据经纬度获取具体位置 java腾讯地图根据经纬度获取具体位置 package com.fengdi.lianmeng.util.tencent;import com.fen ...
- glidedsky挑战-滑块验证码反爬(腾讯防水墙滑块验证码)
相应页面(http://glidedsky.com/level/web/crawler-captcha-1) 题目要求: 先看看页面: 当我们一打开页面,就是出现滑块验证码页面,我们所要的数字参数是没 ...
- Python使用腾讯防水墙
Python使用腾讯防水墙 去腾讯云创建一个验证 前端 <!DOCTYPE html> <html lang="en"><head><me ...
- Java + 腾讯企业邮箱 + javamail + SSL 发送邮件(转载:http://www.cnblogs.com/LUA123/p/5575134.html)
说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开 ...
- Java腾讯企业邮箱发送邮件
##Java通过腾讯企业邮箱发送邮件(多人发送) 企业邮箱需要使用ssl private static String account = "企业邮箱账户";// 登录账户priva ...
- java腾讯邮箱读取邮件(包含企业邮箱)
1,邮箱协议设置 1,邮箱的读取需要先配置邮箱协议,主要有两种,第一个是pop3协议,第二个是imap协议,两者之间的区别在于imap是可以区分邮件是否已读取,而pop可以通过SearchTerm查询 ...
- JAVA接入讯飞离线合成语音
由于公司接到的项目环境不允许联网,这边通过不停的探索,终于找到通过JNA的方式接入,废话不多说,下面展示! 1.讯飞开放平台SDK下载 2.JNA包依赖引入 <!-- https://mvnre ...
- 使用Java的讯飞语音识别示例
简单介绍 最近看到了语音识别和合成的博客,很多平台都提供了语音识别/合成的接口,比如百度和讯飞.感觉讯飞提供的接口更标准更丰富,详细内容可以看官网:讯飞开放平台.结合了另一篇博客<用Java跟图 ...
- java 发 腾讯企业邮_(更新)Java + 腾讯企业邮箱 + javamail + SSL 发送邮件
咳咳~最头疼的就是莫名其妙的错误. 本来今年6月份运行通过的代码,过俩月就报错了. 1 javax.mail.MessagingException: Could not connect to SMTP ...
最新文章
- Flex 学习笔记 动态设置itemRenderer
- imageserver
- docker目录挂载
- C#调用JAVA接口WSSE方式用WebClient方式
- java 调用win32 api 学习总结
- 关于linux分区与挂载的解释
- uc通讯不成功php版本过高,Ucenter通信失败排查方法
- 在MySQL查询山东省男生信息_MySQL-查询
- BootStrap笔记-Model(模式对话框)样式修改
- C++ opengl 放置摄像机
- 学会这 10 种定时任务,我有点飘了
- python设计模式 韦塞尔 pdf下载_PYTHON设计模式
- 破解tinypng文件上传的限制
- 电工结业试卷_电工结业总结
- 机房电脑怎么批量修改计算机名,批量设置IP地址和计算机名
- Android 第三方SDK的检测与提取
- 华为MIB关键字IOD查询地址及方法
- 海洋主题绘画_海底世界创意绘画作品欣赏
- python生僻字如何转码_如何用Python检测生僻字
- 使用码云和博客园学习简易教程