我用asp.net模拟登陆微信公共平台后台

yangmengwanzi 2013-06-11 12:01:27
返回值
{
"Ret": 302,
"ErrMsg": "/cgi-bin/indexpage?t=wxm-index&lang=zh_CN&token=2094957214",
"ShowVerifyCode": 0,
"ErrCode": 0
}
说明已经是登陆成功了但是我保存不了cookie哪位大神可以帮个忙以下是我代码
     string outdata = "";


//新建一个CookieContainer来存放Cookie集合

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
//新建一个HttpWebRequest

myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = indata.Length;
myHttpWebRequest.Method = "POST";
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22";
myHttpWebRequest.CookieContainer = myCookieContainer;

//设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer
Stream myRequestStream = myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(indata, 0, indata.Length);
//把数据写入HttpWebRequest的Request流
myStreamWriter.Close();
myRequestStream.Close();
//关闭打开对象

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
//新建一个HttpWebResponse
myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
myCookieContainer.Add(myHttpWebResponse.Cookies);
//获取一个包含url的Cookie集合的CookieCollection
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
outdata = myStreamReader.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
ServiceMVC.Model.WeiXinResponse _model = new ServiceMVC.Model.WeiXinResponse();

_model = js.Deserialize<ServiceMVC.Model.WeiXinResponse>(outdata);

string strErrMsg =_model.ErrMsg;
TOKEN = strErrMsg.Substring(strErrMsg.LastIndexOf("=")+1);

//把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();

// Console.WriteLine(outdata);
//显示"登录"

//拿到了Cookie,再进行请求就能直接读取到登录后的内容了
myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer = myCookieContainer;//*

//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
myCookieContainer.Add(myHttpWebResponse.Cookies);
myResponseStream = myHttpWebResponse.GetResponseStream();
myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
outdata = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
...全文
5686 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞来的钥匙 2013-10-30
  • 打赏
  • 举报
回复
提交的登陆数据如何写?格式是怎样的?
hongda2008 2013-10-29
  • 打赏
  • 举报
回复
楼主,解决了没。我也 想求一份代码。webcilisky@126.com
jcm294787732 2013-10-24
  • 打赏
  • 举报
回复
294787732@qq.com 我也想参考下,谢谢
u010573484 2013-10-20
  • 打赏
  • 举报
回复
楼主解决了吗
lan901028 2013-10-18
  • 打赏
  • 举报
回复
求代码515114557@qq.com谢谢
u010316723 2013-10-12
  • 打赏
  • 举报
回复
如果成功,可以发一份给我吗,谢谢,谢谢。拜托,拜托!!!949520321@qq.com
aistu 2013-10-11
  • 打赏
  • 举报
回复
你是怎么成功的 我复制你代码返回-2啊
sj_yn1314 2013-09-07
  • 打赏
  • 举报
回复
我也要,发一分给我57871085@qq.com
木哥先生 2013-08-26
  • 打赏
  • 举报
回复
亲 有代码没呢..给我发一份吧..我也关注一下 1101350716@qq.com
纯然 2013-08-15
  • 打赏
  • 举报
回复
可以发一份给我吗,谢谢,谢谢。拜托,拜托!!!1014161003@qq.com
wangyefeng 2013-08-02
  • 打赏
  • 举报
回复
/// <summary> /// cookie值 /// </summary> private static CookieContainer _mCookieContainer = new CookieContainer(); public static CookieContainer cookieContainer { set { _mCookieContainer = value; } get { return _mCookieContainer; } } HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "*/*"; request.AllowAutoRedirect = true; StreamWriter requestStream = null; WebResponse response = null; string responseStr = null; requestStream = new StreamWriter(request.GetRequestStream(), Encoding.UTF8); requestStream.Write(param); requestStream.Close(); request.CookieContainer = new CookieContainer(); response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseStr = reader.ReadToEnd(); cookieContainer = request.CookieContainer; //保存cookies return responseStr; 微信需要增加 request.CookieContainer = new CookieContainer(); request.CookieContainer = cookies; 还有request.Referer
bbzhengcheng 2013-06-25
  • 打赏
  • 举报
回复
亲,可以发一份你的微信模拟登陆我吗。。361337917@qq.com,有bug也行
孤零落叶寒 2013-06-13
  • 打赏
  • 举报
回复
string Cookie= myHttpWebResponse.Headers["Set-Cookie"];
sbanau 2013-06-13
  • 打赏
  • 举报
回复
用 myCookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri) 这个应该可以取出来保存。
myhope88 2013-06-13
  • 打赏
  • 举报
回复
没弄过,帮顶下
yangmengwanzi 2013-06-11
  • 打赏
  • 举报
回复
自己顶下,快来人啊

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧