主要的目的是通过后台模拟登入微信公众平台修改url和token,用到了httpclient框架具体看代码
package com.kzkj.httpclient.Test; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.InputStream; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JOptionPane; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.junit.Test; public class Test3 { public HttpClient client = new DefaultHttpClient(); @Test public void test() throws Exception{ String username="***********"; String password="*********"; String oppenid1="*********"; String oppenidw="*********"; String url="http://www.****.com/WeiXingTest/coreServlet"; String robackToken="woaimeiz"; String token=""; String checkCode=getCheckCode(username); password=MD5Encode(password); String content=getLogins(username,password,checkCode); token=getToken(content); //editAssistantOpenID(oppenid1,token); editCommonInteface(token,url,robackToken); } /** * 修改公众号接口配置信息 * @param url,robackToken,token * */ public void editCommonInteface(String token,String application_url,String robackToken)throws Exception{ String PostUrl="https://mp.weixin.qq.com/cgi-bin/callbackprofile?t=ajax-response&token="+token+"&lang=zh_CN"; String Header="https://mp.weixin.qq.com/cgi-bin/advanced?action=interface&t=advanced/interface&token="+token+"&lang=zh_CN"; HttpPost cfgPost = new HttpPost(PostUrl); cfgPost.addHeader("Referer", Header); List<NameValuePair> nvp_2 = new ArrayList<NameValuePair>(); nvp_2.add(new BasicNameValuePair("callback_token", robackToken)); nvp_2.add(new BasicNameValuePair("url", application_url)); cfgPost.setEntity(new UrlEncodedFormEntity(nvp_2)); System.out.println(EntityUtils.toString(client.execute(cfgPost).getEntity())); cfgPost.releaseConnection(); } /** * 修改公众号手机助手的绑定微信号 * @param openID,token * */ private void editAssistantOpenID(String openID,String token)throws Exception{ String url="https://mp.weixin.qq.com/cgi-bin/binduser?cgi=binduser&t=ajax-response&binduser="+openID; HttpPost post3 = new HttpPost(url); post3.addHeader("Referer", "https://mp.weixin.qq.com/"); List<NameValuePair> nvp3 = new ArrayList<NameValuePair>(); nvp3.add(new BasicNameValuePair("ajax", "1")); nvp3.add(new BasicNameValuePair("token", token)); post3.setEntity(new UrlEncodedFormEntity(nvp3)); HttpResponse resp3 = client.execute(post3); //System.out.println(EntityUtils.toString(resp3.getEntity())); post3.releaseConnection(); } /** * 获取Token * @param reposne返回的数据 * @return Token * */ private String getToken(String response){ String [] bs=response.split("&token=")[1].split("','"); String token=bs[0].split(",")[0]; token=token.substring(0, token.length()-1); return token; } /**MD5加密 * @param 加密前密码 * @return 加密后密码 * */ private String MD5Encode(String password) { MessageDigest md5 = null; byte[] bs = password.getBytes(); StringBuffer buffer = new StringBuffer(); try { md5 = MessageDigest.getInstance("MD5"); md5.update(bs); bs = md5.digest(); for (int i = 0; i < bs.length; i++) { if ((bs[i] & 0xff) < 0x10) { buffer.append("0"); } buffer.append(Long.toString(bs[i] & 0xff, 16)); } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return buffer.toString(); } /** * 获取验证码 * @param 用户名称 * @return 验证码 * */ private String getCheckCode(String username)throws Exception{ String url="https://mp.weixin.qq.com/cgi-bin/verifycode?username="+username+"&r="+System.currentTimeMillis(); HttpGet get_1 = new HttpGet(url); HttpResponse resp_1 = client.execute(get_1); BufferedImage image = ImageIO.read(resp_1.getEntity().getContent()); String checkCode = JOptionPane.showInputDialog(new ImageIcon(image)); return checkCode; } // 请求登录 private void getLogin()throws Exception{ // 获取验证码 HttpGet get_1 = new HttpGet("https://mp.weixin.qq.com/cgi-bin/verifycode?username=ejcall@163.com&r="+System.currentTimeMillis()); HttpResponse resp_1 = client.execute(get_1); BufferedImage image = ImageIO.read(resp_1.getEntity().getContent()); String checkCode = JOptionPane.showInputDialog(new ImageIcon(image)); System.out.println(checkCode); get_1.releaseConnection(); // 请求登录 HttpPost post = new HttpPost("https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"); post.addHeader("Referer", "https://mp.weixin.qq.com/"); List<NameValuePair> nvp = new ArrayList<NameValuePair>(); nvp.add(new BasicNameValuePair("f", "json")); nvp.add(new BasicNameValuePair("imgcode", checkCode)); nvp.add(new BasicNameValuePair("pwd", "1d856dafc0930157041e8c7c4bb11ed3")); nvp.add(new BasicNameValuePair("username", "ejcall@163.com")); post.setEntity(new UrlEncodedFormEntity(nvp)); System.out.println(EntityUtils.toString(client.execute(post).getEntity())); post.releaseConnection(); // 修改配置 HttpPost cfgPost = new HttpPost("https://mp.weixin.qq.com/cgi-bin/callbackprofile?t=ajax-response&token=288164033&lang=zh_CN"); cfgPost.addHeader("Referer", "https://mp.weixin.qq.com/cgi-bin/advanced?action=interface&t=advanced/interface&token=288164033=&lang=zh_CN"); List<NameValuePair> nvp_2 = new ArrayList<NameValuePair>(); nvp_2.add(new BasicNameValuePair("callback_token", "08712013191636045726")); nvp_2.add(new BasicNameValuePair("url", "http://0992.mpb.weduty.com/mp/B1334055059")); cfgPost.setEntity(new UrlEncodedFormEntity(nvp_2)); System.out.println(EntityUtils.toString(client.execute(cfgPost).getEntity())); cfgPost.releaseConnection(); } /** * 请求登入 * @param 用户名,加密后密码,验证码 * @return reposne返回的数据,包含Token的String字段 * */ private String getLogins(String user,String pas,String checkCode)throws Exception{ String resultCont=""; // 请求登录 HttpPost post = new HttpPost("https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"); post.addHeader("Referer", "https://mp.weixin.qq.com/"); List<NameValuePair> nvp = new ArrayList<NameValuePair>(); nvp.add(new BasicNameValuePair("f", "json")); nvp.add(new BasicNameValuePair("imgcode", checkCode)); nvp.add(new BasicNameValuePair("pwd", pas)); nvp.add(new BasicNameValuePair("username", user)); post.setEntity(new UrlEncodedFormEntity(nvp)); resultCont=EntityUtils.toString(client.execute(post).getEntity()); post.releaseConnection(); return resultCont; } }
相关推荐
微信公众平台应用开发实战-完整扫描版 pdf 版本。 微信公众平台应用开发实战-完整扫描版 pdf 文档。 微信公众平台应用开发实战-完整扫描版.pdf 全书一共9章,在逻辑上分为四大部分:第一部分(第1章)介绍了微信公众...
微信开发实例 微信公众平台开发教程-深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)1.微信接口前期准备。由北风网提供,微信开发实例微信公众平台基础篇: 1)微信公众平台简介:开发...
C#写的哦,写了很久,现在给大家共享出来,供同学习哦
模拟登陆微信公众平台可发消息(2014-7-9) 教程:http://blog.csdn.net/wlmnzf/article/details/37607501
《微信公众平台企业应用开发实战》全面介绍了微信公众平台已开放API的功能、使用方法及应用场景,详细解读了微信公众平台应用开发所需的各种技术、方法和技巧,深入讲解了微信公众平台开源开发框架Senparc.Weixin.MP...
《微信公众平台企业应用开发实战》全面介绍了微信公众平台已开放API的功能、使用方法及应用场景,详细解读了微信公众平台应用开发所需的各种技术、方法和技巧,深入讲解了微信公众平台开源开发框架Senparc.Weixin.MP...
最新微信公众平台源码 C# ASP.NET 微商城 微网站 微支付.. 完整版源码非编译版
本书是微信公众平台应用开发方面的书籍,作者是腾讯公司的软件开发工程师,而且是微信公众平台应用开发的先驱者之一。本书全面介绍了微信公众平台应用开发所需的各项技术,系统解读了微信公众平台开放的API和各项...
微信机器人源码 微信公众平台机器人源码
1.2 微信公众平台 6 1.2.1 公众平台简介 6 1.2.2 服务号和订阅号 7 1.3 企业号 8 1.4 小程序 8 1.5 微信开放平台 9 1.6 微信支付 10 1.7 表情开放平台 12 1.8 微信广告 12 1.9 小结...
已经获取微信公众号发布的图片,但不能正常显示 ,提示:此图片来自微信公众平台 未经允许不得引用。 这是怎么回事呢? 遇到这种问题是因为微信公众平台对图片采用了防盗链设置,微信对外提供了API接口,让我们...
艾媒咨询(iiMedia Research)调查分析认为,尽管微信在短期内赢得了市场和用户,微信公众平台也急速发展,但调查显示有以下几点值得关注: 1、微信公众平台热度很高,但是实际营销效果和用户黏性比预期低; 2、...
PHP微信公众平台开发,内容丰富,涵盖了多个PHP微信公众平台开发的方面,适合于初学者来学习借鉴。
本书是微信公众平台应用开发领域的经典著作,作者是腾讯公司的资深软件开发工程师,而且是微信公众平台应用开发的先驱者之一。本书全面介绍了微信公众平台应用开发所需的各项技术,系统解读了微信公众平台开放的API...
对微信公众平台开发有兴趣的同学 对ASP.NET MVC开发有兴趣的同学 有志进入开发行业的所有同学 课程特色: 最前沿ASP.NET MVC 5、Entity Framework 6、微信公众平台5.2 最全6大功能19个接口用法大揭秘 零基础快速...
这是本人根据微信公众平台接口文档简单得不能再简单的资料编写的一个范例,希望对各位delphi程序员开发微信应用带来点帮助。 文件包中包含两个例程,一个是服务器端的,另一个是为方便在本地测试,模拟微信服务器推...
微信公众平台开发文档2016最新
微信公众平台怎么用教程大全 本教程一共包含六个部分,主要涵盖以下相关内容:微信公众平台账号申请、微信公众平台登录、微信公众平台注册、微信公众平台认证、微信公众平台运营及微信公众平台开发模式介绍。 教程...
毕业设计 基于微信公众平台的php商城系统 毕业设计 基于微信公众平台的php商城系统 毕业设计 基于微信公众平台的php商城系统 毕业设计 基于微信公众平台的php商城系统 毕业设计 基于微信公众平台的php商城系统 ...