#腾讯防水墙(这里用到的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腾讯防水墙】相关推荐

  1. java腾讯地图根据经纬度获取具体位置

    腾讯地图 java腾讯地图根据经纬度获取具体位置 java腾讯地图根据经纬度获取具体位置 package com.fengdi.lianmeng.util.tencent;import com.fen ...

  2. glidedsky挑战-滑块验证码反爬(腾讯防水墙滑块验证码)

    相应页面(http://glidedsky.com/level/web/crawler-captcha-1) 题目要求: 先看看页面: 当我们一打开页面,就是出现滑块验证码页面,我们所要的数字参数是没 ...

  3. Python使用腾讯防水墙

    Python使用腾讯防水墙 去腾讯云创建一个验证 前端 <!DOCTYPE html> <html lang="en"><head><me ...

  4. Java + 腾讯企业邮箱 + javamail + SSL 发送邮件(转载:http://www.cnblogs.com/LUA123/p/5575134.html)

    说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开 ...

  5. Java腾讯企业邮箱发送邮件

    ##Java通过腾讯企业邮箱发送邮件(多人发送) 企业邮箱需要使用ssl private static String account = "企业邮箱账户";// 登录账户priva ...

  6. java腾讯邮箱读取邮件(包含企业邮箱)

    1,邮箱协议设置 1,邮箱的读取需要先配置邮箱协议,主要有两种,第一个是pop3协议,第二个是imap协议,两者之间的区别在于imap是可以区分邮件是否已读取,而pop可以通过SearchTerm查询 ...

  7. JAVA接入讯飞离线合成语音

    由于公司接到的项目环境不允许联网,这边通过不停的探索,终于找到通过JNA的方式接入,废话不多说,下面展示! 1.讯飞开放平台SDK下载 2.JNA包依赖引入 <!-- https://mvnre ...

  8. 使用Java的讯飞语音识别示例

    简单介绍 最近看到了语音识别和合成的博客,很多平台都提供了语音识别/合成的接口,比如百度和讯飞.感觉讯飞提供的接口更标准更丰富,详细内容可以看官网:讯飞开放平台.结合了另一篇博客<用Java跟图 ...

  9. java 发 腾讯企业邮_(更新)Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

    咳咳~最头疼的就是莫名其妙的错误. 本来今年6月份运行通过的代码,过俩月就报错了. 1 javax.mail.MessagingException: Could not connect to SMTP ...

最新文章

  1. Flex 学习笔记 动态设置itemRenderer
  2. imageserver
  3. docker目录挂载
  4. C#调用JAVA接口WSSE方式用WebClient方式
  5. java 调用win32 api 学习总结
  6. 关于linux分区与挂载的解释
  7. uc通讯不成功php版本过高,Ucenter通信失败排查方法
  8. 在MySQL查询山东省男生信息_MySQL-查询
  9. BootStrap笔记-Model(模式对话框)样式修改
  10. C++ opengl 放置摄像机
  11. 学会这 10 种定时任务,我有点飘了
  12. python设计模式 韦塞尔 pdf下载_PYTHON设计模式
  13. 破解tinypng文件上传的限制
  14. 电工结业试卷_电工结业总结
  15. 机房电脑怎么批量修改计算机名,批量设置IP地址和计算机名
  16. Android 第三方SDK的检测与提取
  17. 华为MIB关键字IOD查询地址及方法
  18. 海洋主题绘画_海底世界创意绘画作品欣赏
  19. python生僻字如何转码_如何用Python检测生僻字
  20. 使用码云和博客园学习简易教程

热门文章

  1. Python-nowcoder 求平均年龄放苹果
  2. linux和window时间不一致,linux时间与Windows时间不一致的解决
  3. vivo Y55的Usb调试模式在哪里,打开vivo Y55Usb调试模式的步骤
  4. python中参数传递
  5. Java switch()括号内参数的类型要求
  6. 注意力模型(AM)可广泛应用于CV / NLP
  7. 快捷方式锁定至任务栏
  8. lua调用不同lua文件中的函数
  9. 人工智能和自动驾驶业务将是百度未来的最强增长动力
  10. NR PDCP(一) overview