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": "nntn n",
"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)



