• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

我用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();
...全文
5556 点赞 收藏 18
写回复
18 条回复
ad_沉默 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
回复 点赞
攻城狮A 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日
自己顶下,快来人啊
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告