原理:利用微信重定向判断域名是否被封
javaer直接复制代码就可以运行
检测的域名必须添加 HTTP/HTTPS:
Pattern pattern = compile("^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+$");
boolean matches = pattern.matcher(url).matches();
if(!matches){
return BaseResult.failed().msg("不合法的链接,请填写完整的链接地址(http://xxxx.com)!");
}
话不多说直接上代码:
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.Method;
/**
* @Title: WxUrlCheckUtil.java
* @Description: TODO
* [url=home.php?mod=space&uid=686208]@AuThor[/url] Denticle
* [url=home.php?mod=space&uid=686237]@date[/url] 2020/5/14 16:32
* [url=home.php?mod=space&uid=1248337]@version[/url] V1.0
*/
public class WxUrlCheckUtil {
private static final String CHECK_URL = "http://mp.weixinbridge.com/mp/wapredirect?url=%s&action=appmsg_redirect&uin=&biz=MzUxMTMxODc2MQ==&mid=100000007&idx=1&type=1&scene=0";
public static boolean checkUrl(String url){
String curl = String.format(CHECK_URL,url);
HttpRequest request = new HttpRequest(curl);
request.header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36");
request.method(Method.GET);
HttpResponse response = request.execute();
String location = response.header("Location");
if(location.equals(url)){
return true;
}else if(location.contains("https://weixin110.qq.com")){
return false;
}
throw new IllegalArgumentException("未知错误,请重新检测");
}
public static void main(String[] args) {
try {
if(checkUrl("https://www.xxx.com")){
System.out.println("恭喜域名正常!");
}else {
System.out.println("域名被封了!");
}
}catch (Exception e){
e.printStackTrace();
}
}
}
评论区