50,531
社区成员
发帖
与我相关
我的任务
分享
不能了,微信改变了规则,强制用户24小时之内对公众号发信息,公众号才可以主动给用户发消息
private static String PWD = "5bd2e46c37c792ce4a9308ab4abes";//密码,要MD5加密
private static String USERNAME = "130830xxxx@qq.com";
public static void main(String[] args) throws Exception { // 获得httpclient对象
HttpClient httpclient = new DefaultHttpClient();
FileInputStream ins = new FileInputStream(new File("e:/wexin.cer"));//加载微信证书
CertificateFactory cerFactory = CertificateFactory.getInstance("X.509");
Certificate cer = cerFactory.generateCertificate(ins);
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, null);
keyStore.setCertificateEntry("trust", cer);
SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
HttpPost post = new HttpPost("https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN");
Header cookie = new BasicHeader("Cookie", "ac=1,016,001; pt2gguin=o0503530115; RK=wD5qAuCPls; ptcz=2803611a23e59b710519c46b792d8df22cab01e413ca7b38e70465b1d6bc1df0; uin_cookie=1308300842; euin_cookie=70E0A746F5C21CF73A8B45D76B3098B3D71ECF8CF7C1D178; pgv_pvid=7669182920; cert=yAk4mLW8EJ02hefUt3BrpDoZSVPxpYmY");
Header accept = new BasicHeader("Accept","application/json, text/javascript, */*; q=0.01");
Header contentType = new BasicHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
Header agent = new BasicHeader("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)");
Header referer = new BasicHeader("Referer","https://mp.weixin.qq.com/");
Header[] headers = {cookie,accept,contentType,agent,referer};
post.setHeaders(headers);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("username", USERNAME));
nvps.add(new BasicNameValuePair("pwd", PWD));
nvps.add(new BasicNameValuePair("f", "json"));
nvps.add(new BasicNameValuePair("imgcode", ""));
post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
// 发送请求
HttpResponse response = httpclient.execute(post);
// 输出返回值
java.io.InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
printAll(br);
br.close();
HttpGet get = new HttpGet("https://mp.weixin.qq.com/cgi-bin/contactmanage?t=user/index&token=705999888&lang=zh_CN&pagesize=10&pageidx=0&type=0&groupid=0");
response = httpclient.execute(get);
// 输出返回值
is = response.getEntity().getContent();
br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
printAll(br);
br.close();
}
private static void printAll(BufferedReader br) throws IOException {
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
/**
* 使用 POST 方式提交数据
*
* @return
* @throws URIException
*/
private static HttpPost getPostMethod() {
return null;
}
登陆返回
{
"Ret": 302,
"ErrMsg": "/cgi-bin/home?t=home/index&lang=zh_CN&token=431037653",
"ShowVerifyCode": 0,
"ErrCode": 0
}
上个月还能模拟登录和主动推送消息的,现在却总返回 {"base_resp":{"ret":-5,"err_msg":"not supported"}} 不知道是不是官网什么调整了。