栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

微信WeChatHelper3.1.0.72逆向-微信WeChatHelper3.1.0.72接口(WeChatHelper3.1.0.72.dll)-c#调用实例方法

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

微信WeChatHelper3.1.0.72逆向-微信WeChatHelper3.1.0.72接口(WeChatHelper3.1.0.72.dll)-c#调用实例方法

WeChatHelper3.1.0.58.dll接口适用所有语言,今天我来讲一下用C#来做个实例调用。

第一步:下载并引用Newtonsoft.Json.dll类库

因为本接口是基于HTTP+JSON的,所有我们先下载c#开源的类库Newtonsoft.Json(下载地址 http://json.codeplex.com/ )

在项目中引用Newtonsoft.Json.dll(根据自己的版本,我用的是VS2017 版本是4.5)

 

第二步:创建HTTP类

HttpHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace WechatHelper
{
    class HttpHelper
    {
        public string GetData(string url)
        {
            string data = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream ResponseStream = response.GetResponseStream();
                StreamReader StreamReader = new StreamReader(ResponseStream, Encoding.GetEncoding("utf-8"));
                data = StreamReader.ReadToEnd();
                StreamReader.Close();
                ResponseStream.Close();
            }
            catch (Exception ex)
            {
            }
            finally
            {

            }
            return data;
        }
        public string GetPostData(string url, string param)
        {
            string data = "";
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/json;charset=utf-8";
                if (!string.IsNullOrEmpty(param))
                {
                    Stream RequestStream = request.GetRequestStream();
                    byte[] bytes = Encoding.UTF8.GetBytes(param);
                    RequestStream.Write(bytes, 0, bytes.Length);
                    RequestStream.Close();
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream ResponseStream = response.GetResponseStream();
                StreamReader StreamReader = new StreamReader(ResponseStream, Encoding.GetEncoding("utf-8"));
                data = StreamReader.ReadToEnd();
                StreamReader.Close();
                ResponseStream.Close();
            }
            catch (Exception ex)
            {
            }
            finally
            {

            }
            return data;
        }
    }
}
第三步:创建JsonHelper类

本类只对聊天记录做处理,其它的可以照此方法。

JsonHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using WechatHelper.RecordObject;
namespace WechatHelper
{
    class JsonHelper
    {
        /// 
        /// 获取聊天记录数据
        /// 
        /// JSON文本数据
        /// 
        static public RecordObject.RecordObject GetRecords(string jsonText)
        {
            RecordObject.RecordObject recordObject= JsonConvert.DeserializeObject(jsonText);
            return recordObject;
        }
    }
}
第四步:创建聊天记录对象

聊天记录对象是根据聊天记录数据和类型创建的,我们来看一下聊天记录的JSON数据结构:

 

{
    "cmdid": 7,
    "maxid": 5,
    "count": 75,
    "status": "ok",
    "qq": "2376140244",
    "data": [
{
            "localId": 42,
            "MsgSvrID": "2062239765205091112",
            "StrTalker": "18618087204@chatroom",
            "StrContent": "nntnn",
            "CreateTime": 1609564091,
            "IsSender": 0,
            "type": 3,
            "SubType": 0,
            "CompressContent": "",
            "BytesExtra": {
                "wxid": "wxid_y7hw81zn588b12",
                "thumb": "keepmoving8\FileStorage\Image\Thumb\2021-01\e03c67108d6c39c020c48696dbd36916_t.dat",
                "image": "keepmoving8\FileStorage\Image\2021-01\4953c7f182c4741eec97c9ab6bfe1eb4.dat",
                "video": ""
            }
        },
        {
            "localId": 43,
            "MsgSvrID": "3036343329427015238",
            "StrTalker": "2656683682@chatroom",
            "StrContent": "收满不收弹头40",
            "CreateTime": 1609564122,
            "IsSender": 0,
            "type": 1,
            "SubType": 0,
            "CompressContent": "",
            "BytesExtra": {
                "wxid": "wxid_87rw855vmv4h22",
                "thumb": "",
                "image": "",
                "video": ""
            }
        },
        {
            "localId": 44,
            "MsgSvrID": "6558585969683208319",
            "StrTalker": "JI282940039",
            "StrContent": "要的滴滴我",
            "CreateTime": 1609564128,
            "IsSender": 0,
            "type": 1,
            "SubType": 0,
            "CompressContent": "",
            "BytesExtra": {
                "wxid": "",
                "thumb": "",
                "image": "",
                "video": ""
            }
        }
    ]
}

上面记录中有三种记录:

1.群图片消息,群发送的微信ID和图片的地址已显示在扩展数据中。

2.群文本消息,群发送的微信ID显示在扩展数据中。

3.普通好友文本消息,扩展数据都是空。

根据JSON数据结构,我们在c#中构造聊天记录对象模型:

RecordObject.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

/// 
/// 聊天记录对象
/// 
namespace WechatHelper.RecordObject
{
    /// 
    /// 聊天记录主要数据
    /// 
    public class data
    {
        public int localId { get; set; }//记录ID
        public string MsgSvrID { get; set; }//消息ID
        public string StrTalker { get; set; }//群消息
        public string StrContent { get; set; } //内容
        public int CreateTime { get; set; }//创建时间
        public int IsSender { get; set; }//是否自己发送
        public int type { get; set; }//消息类型
        public int SubType { get; set; }//子类型
        public string CompressContent { get; set; } //这里为转账金额信息,有+与-表示:收到与转出   
        public BytesExtra BytesExtra { get; set; }
    }

    /// 
    /// 聊天记录扩展数据
    /// 
    public class BytesExtra
    {
        public string wxid { get; set; }//      群消息时发送者微信ID"

        public string thumb { get; set; }   //     图片类型时缩微图路径"

        public string image { get; set; }// 图片或视频类型时图片路径"

        public string mp4 { get; set; }//视频类型时MP4路径"
    }

    /// 
    /// 聊天记录对象
    /// 
    public class RecordObject
    {
        public int cmdid { get; set; }
        public int maxid { get; set; }//记录索引
        public int count { get; set; }//信息条数
        public string qq { get; set; }//本人QQ
        public string status { get; set; }//状态
        public List data { get; set; }//消息主体数组
    }
}
第五步:主程序调用

上面步骤都完成了,就等着主程序调用了,我们在主窗体中创建一个 Timer定时器,每3秒中刷新一次聊天记录:

private void timer1_Tick(object sender, EventArgs e)
        {
            HttpHelper http = new HttpHelper();
            string data =http.GetData("http://127.0.0.1/?cmdid=7");
            RecordObject.RecordObject recordObject = JsonHelper.GetRecords(data);
            foreach(RecordObject.data record in recordObject.data)
            {
                txt_resault.AppendText(record.StrContent+"rn");
                txt_resault.AppendText("***********************************************************rn");
            }
        }

看,就是这么简单!

c#调用下载地址(vs2017 .net4.5版本):https://download.csdn.net/download/keepmoving0407/14010292

也可以进群交流下载:(交流群:561112477 1005923608)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906788.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号