温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微信H5活动文案链接域名防封及跳转系统详解

发布时间:2020-03-04 21:01:26 来源:网络 阅读:457 作者:qq_1401806571 栏目:移动开发

一直以来,我们都被新奇劲爆的H5不断冲击大脑,大脑一次又一次被刺激着,好的H5活动文案在微信中和朋友圈火了一把,看过之后却让我们久久不能忘怀,我们下意识引发了情感共鸣!那么问题来了,这个H5活动文案精心策划出来后,分享次数过多或者是被同行举报之后,全部被归零————被微信封杀了!那么该如何来对H5活动文案链接域名来做防封呢?
微信H5活动文案链接域名防封及跳转系统详解
像这类场景,都是以文字 图片加二维码的形式展现在大众的眼前,那我们就从这几方面来着手。
这里重点需要说的是图片!!这个得有个度,很多大佬为了能引起眼求,用了过于暴露和过于性感的图片,这样容易被微信判定为H色,进而容易引起被封。

还有,二维码识别,很多防封都不能兼容苹果二维码的识别,不能做到长按来识别,而是需要保存二维码到相岫,再用扫一扫进行识别,这样繁琐的步骤,别说没有一点优势,还引起用户的反感,从而进行投诉,只要投诉次数一多,也是容易引起被封的。

那有人就会有疑问,我从各方面都有注意到,那为什么还是被微信封杀呢?那我这里跟你说,被封的因素太多了,其中可以去百度搜搜微信相关规则,所谓是防不胜防,我们要做的就是做好防封,将我们的损失降到最小,将推广做到利益最大化,那怎么来做防封呢?下面介绍几种跳转系统供大家参考:

1、现在很多朋友接触的防封策略都是用落地域名作为肉盾,一个入口配上多个落地域名,让落地域名进行轮换,假如落地A被封了,立马更换落地域名B,这里可以手动换,也可以写程序实现自动换,但是这种很费域名,尤其是带点敏感或者是灰色产业,那一天不准备百把个域名是做不下来的,完全就是用域名来推的,而且域名一天一个价,有的时候就是天价,很多老板直呼推不起。这种方式对于某些行业是解决不了根本的。

2、还有一种就是做跳转,细细分析,封只是说在微信环境中被封杀,假如说是自动跳转到手机外部浏览器是不是就可以解决这一问题了,但是这个也是有一定的限制,假如必须在微信环境中去实施后面部分的话,这个就没那么合适,而且目前为止,只能实现安卓自动跳转,由于苹果端 做了限制,还是需要手动去引导一步。
3、多级加密跳转防封,通过生成防封短链接,有效保护原始链接不被发现,应该说是目前最有技术含量的防封了,各种场景都适用,尤其QP,BC等,效果杠杠的。

完结,以上策略希望对大家有帮助,期待新的发现~有需要可以联系我,
最后分享代码供技术朋友参考下:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

public class Demo {
  public static final String DEF_CHATSET = "UTF-8";
  public static final int DEF_CONN_TIMEOUT = 30000;
  public static final int DEF_READ_TIMEOUT = 30000;
  public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";

  public static void mobileQuery(){
      String result =null;
      String url ="http://api.monkeyapi.com";//请求接口地址
      Map params = new HashMap();//请求参数
        params.put("appkey" , "appkey");//您申请的APPKEY
        params.put("url" , "www.monkeyapi.com");//需要查询的网站
      try {
          result = net(url, params, "GET");
          JSONObject object = JSONObject.fromObject(result);
          if(object.getInt("error_code")==0){
            System.out.println(object.get("result"));
          }else{
            System.out.println(object.get("error_code")+":"+object.get("reason"));
          }
      } catch (Exception e) {
        e.printStackTrace();
      }
  }

  public static void main(String[] args) {

  }

  /**
   *
   * @param  strUrl 请求地址
   * @param  params 请求参数
   * @param  method 请求方法
   * @return    网络请求字符串
   * @throws  Exception
   */
  public static String net(String strUrl, Map params,String method) throws Exception {
     HttpURLConnection conn = null;
     BufferedReader reader = null;
     String rs = null;
     try {
        StringBuffer sb = new StringBuffer();
        if(method==null || method.equals("GET")){
          strUrl = strUrl+"?"+urlencode(params);
        }
        URL url = new URL(strUrl);
        conn = (HttpURLConnection) url.openConnection();
        if(method==null || method.equals("GET")){
           conn.setRequestMethod("GET");
        }else{
           conn.setRequestMethod("POST");
           conn.setDoOutput(true);
        }
        conn.setRequestProperty("User-agent", userAgent);
        conn.setUseCaches(false);
        conn.setConnectTimeout(DEF_CONN_TIMEOUT);
        conn.setReadTimeout(DEF_READ_TIMEOUT);
        conn.setInstanceFollowRedirects(false);
        conn.connect();
        if (params!= null && method.equals("POST")) {
           try {
              DataOutputStream out = new DataOutputStream(conn.getOutputStream());
              out.writeBytes(urlencode(params));
           } catch (Exception e) {
              // TODO: handle exception
              e.printStackTrace();
           }
        }
       InputStream is = conn.getInputStream();
       reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
       String strRead = null;
       while ((strRead = reader.readLine()) != null) {
         sb.append(strRead);
       }
       rs = sb.toString();
     } catch (IOException e) {
       e.printStackTrace();
     } finally {
       if (reader != null) {
          reader.close();
       }
       if (conn != null) {
          conn.disconnect();
       }
     }
    return rs;
  }

  //将map型转为请求参数型
  public static String urlencode(Map<String,String> data) {
       StringBuilder sb = new StringBuilder();
       for (Map.Entry i : data.entrySet()) {
           try {
              sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
           } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
           }
       }
       return sb.toString();
  }

}
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI