WPF 微信 MVVM 【续】修复部分用户无法获取列表
看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因。
前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web微信采取了不同的域名来兼容各种用户。
下面是大神提供的js代码和C#代码
function ()
{
var e = location.host,
t = 'weixin.qq.com',
o = 'file.wx.qq.com',
n = 'webpush.weixin.qq.com';
e.indexOf('wx2.qq.com') > - 1 ? (t = 'weixin.qq.com', o = 'file2.wx.qq.com', n = 'webpush2.weixin.qq.com')
: e.indexOf('qq.com') > - 1 ? (t = 'weixin.qq.com', o = 'file.wx.qq.com', n = 'webpush.weixin.qq.com')
: e.indexOf('web1.wechat.com') > - 1 ? (t = 'wechat.com', o = 'file1.wechat.com', n = 'webpush1.wechat.com')
: e.indexOf('web2.wechat.com') > - 1 ? (t = 'wechat.com', o = 'file2.wechat.com', n = 'webpush2.wechat.com')
: e.indexOf('wechat.com') > - 1 ? (t = 'wechat.com', o = 'file.wechat.com', n = 'webpush.wechat.com')
: e.indexOf('web1.wechatapp.com') > - 1 ? (t = 'wechatapp.com', o = 'file1.wechatapp.com', n = 'webpush1.wechatapp.com')
: (t = 'wechatapp.com', o = 'file.wechatapp.com', n = 'webpush.wechatapp.com');
}
js
public object LoginCheck()
{
if(this.string_0 != null)
{
string[] strArray = new string[];
strArray[] = this.string_7;
strArray[] = this.string_0;
strArray[] = "&tip=0&r=";
TimeSpan span = (TimeSpan)(DateTime.Now.ToUniversalTime() - new DateTime(0x7b2, , ));
long totalMilliseconds = (long) span.TotalMilliseconds;
strArray[] = totalMilliseconds.ToString();
strArray[] = "&_=";
span = (TimeSpan)(DateTime.Now.ToUniversalTime() - new DateTime(0x7b2, , ));
strArray[] = ((long) span.TotalMilliseconds).ToString();
byte[] bytes = this.httpService_0.SendGetRequest(string.Concat(strArray));
string str2 = Encoding.UTF8.GetString(bytes);
if(str2.Contains("=201"))
{
string s = str2.Split(new string[] { "'" }, StringSplitOptions.None)[].Split(new char[] { ',' })[];
byte[] buffer = Convert.FromBase64String(s);
MemoryStream stream = new MemoryStream(buffer, , buffer.Length);
stream.Write(buffer, , buffer.Length);
return Image.FromStream(stream);
}
if(str2.Contains("=200"))
{
string str3 = str2.Split(new string[] { "\"" }, StringSplitOptions.None)[];
string domain = CheckData.Getdomain(str3);
if(domain.IndexOf("wx2.qq.com") > -)
{
this.string_1 = "https://wx2.qq.com/";
this.string_2 = "https://wx2.qq.com";
this.string_4 = "https://file2.wx.qq.com";
this.string_3 = "https://webpush2.weixin.qq.com";
return str3;
}
if(domain.IndexOf("qq.com") > -)
{
this.string_2 = "https://wx.qq.com";
this.string_4 = "https://file.wx.qq.com";
this.string_3 = "https://webpush.weixin.qq.com";
return str3;
}
if(domain.IndexOf("web1.wechat.com") > -)
{
this.string_2 = "https://web.wechat.com";
this.string_4 = "https://file1.wechat.com";
this.string_3 = "https://webpush1.wechat.com";
return str3;
}
if(domain.IndexOf("web2.wechat.com") > -)
{
this.string_2 = "https://web.wechat.com";
this.string_4 = "https://file2.wechat.com";
this.string_3 = "https://webpush2.wechat.com";
return str3;
}
if(domain.IndexOf("wechat.com") > -)
{
this.string_2 = "https://web.wechat.com";
this.string_4 = "https://file.wechat.com";
this.string_3 = "https://webpush.wechat.com";
return str3;
}
if(domain.IndexOf("web1.wechatapp.com") > -)
{
this.string_2 = "https://web.wechatapp.com";
this.string_4 = "https://file1.wechatapp.com";
this.string_3 = "https://webpush1.wechatapp.com";
return str3;
}
this.string_2 = "https://web.wechatapp.com";
this.string_4 = "https://file.wechatapp.com";
this.string_3 = "https://webpush.wechatapp.com";
return str3;
}
}
return null;
}
C#
根据其方法,我进行了修改,可以实现登录以后的后续操作了。
如图,就是小号登录以后,可以获取列表了


修改后的代码已上传GitHub
WPF 微信 MVVM 【续】修复部分用户无法获取列表的更多相关文章
- WPF 微信 MVVM 【续】发送部分QQ表情
今天主要记录的就是发送QQ表情, WPF 微信 MVVM里写了,后期为了发送QQ表情,需要把TextBox替换为RichTextBox,接下来就说说替换的过程. 一.支持Binding的RichTex ...
- WPF 微信 MVVM
公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...
- JAVA微信公众号网页开发 —— 用户授权获取openid
官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 HttpClientUtil.java packa ...
- WPF Prism MVVM 中 弹出新窗体. 放入用户控件
原文:WPF Prism MVVM 中 弹出新窗体. 放入用户控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_37214567/artic ...
- 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...
- C#开发微信门户及应用(5)--用户分组信息管理
在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方面停止了研究,而是继续深入探索这方面的技术,为了更好的应用起 ...
- [课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试反馈)
[课程设计]Scrum 1. 9 多鱼点餐系统开发进度(最后页面完善&修复BUG&用户测试) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢 ...
- CleanAOP实战系列--WPF中MVVM自动更新
CleanAOP实战系列--WPF中MVVM自动更新 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 CleanAOP介绍:https://github.com/J ...
- 微信开发第4章 通过accesstoken获取用户标签管理
通过access_token获取用户标签管理: 1.获取标签列表 调用接口为: http请求方式:GET(请使用https协议) https://api.weixin.qq.com/cgi-bin/t ...
随机推荐
- ABP文档 - 后台作业和工作者
文档目录 本节内容: 简介 后台作业 关于作业持久化 创建一个后台作业 在队列里添加一个新作业 默认的后台作业管理器 后台作业存储 配置 禁用作业执行 Hangfire 集成 后台工作者 创建一个后台 ...
- JavaScript 开发规范
本篇主要介绍JS的命名规范.注释规范以及框架开发的一些问题. 目录 1. 命名规范:介绍变量.函数.常量.构造函数.类的成员等等的命名规范 2. 注释规范:介绍单行注释.多行注释以及函数注释 3. 框 ...
- UWP开发之ORM实践:如何使用Entity Framework Core做SQLite数据持久层?
选择SQLite的理由 在做UWP开发的时候我们首选的本地数据库一般都是Sqlite,我以前也不知道为啥?后来仔细研究了一下也是有原因的: 1,微软做的UWP应用大部分也是用Sqlite.或者说是微软 ...
- vmware上网的方式
vmware上网设置 vmware虚拟机上网设置 我的一些心得,如下: 如何使vmware虚拟机中的操作系统能够上网? 第一种情况: 主机使用PPPOE拨号上网 方法一:NAT方式 1.先关闭虚拟机中 ...
- 我这么玩Web Api(二):数据验证,全局数据验证与单元测试
目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试 一.模型状态 - ModelState 我理解 ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- Autofac - 生命周期
实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...
- Angular2 Hello World 之 2.0
最近angular2正式版发布了,现在就趁热接着记录一下2.0版的Hello World.据说由RC6升级到2.0代码改动不是很大,在写的时候也感觉改动不是很大,这次记录还是以asp.net core ...
- jQuery中取消后续执行内容
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title&g ...
- CentOS 7 安装出现 /dev/root does not exits 导致无法安装的问题
本人在官网下的是这个 CentOS-7-x86_64-DVD-1611.iso ,然后用UltraISO 9.6制作的U盘启动盘,不过在安装的时候出现了这个错误, 然后也是搜了好久,试了一下,下面这个 ...