httpwebrequest提交问题

angelywc 2012-09-17 01:16:04
本人在做模拟登陆,现在发现登陆的时候,老说我参数异常,我测试过后,发现我发送的数据包是2个的,别人发送的是一个人,格式都是一样的,不知道是不是这里的错误,代码如下,请大家帮忙解决下
本人在做网站模拟登陆,发现登陆的时候,发送变成了2个数据包,可能是这方面原因造成我无法登陆,登陆的时候,说参数异常,现代码如下,请大家帮忙看下
public static string GetHtml(string URL, string strId, string strPassword)
{

string postData = "c=login&loginName=" + strId;
postData += ("&password=" + strPassword );
byte[] data = Encoding.UTF8.GetBytes(postData);
CookieCollection ckclReturn = new CookieCollection();
CookieContainer cc = new CookieContainer();
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);

myRequest.CookieContainer = cc;
myRequest.ProtocolVersion = HttpVersion.Version11;
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 663; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727)";

myRequest.ContentLength = data.Length;

myRequest.Method = "post";
myRequest.Accept = "*/*";
myRequest.KeepAlive = true;

myRequest.ServicePoint.Expect100Continue = false;
Stream newStream = myRequest.GetRequestStream();

newStream.Write(data, 0, data.Length);// 提交请求数据
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();

StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
return (content);
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = GetHtml("http://youxi.baidu.com/ajax_user_login.xhtml", "用户名", "密码");
}
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuangwei8 2013-08-25
  • 打赏
  • 举报
回复
学习了
angelywc 2012-09-20
  • 打赏
  • 举报
回复
THANKS,多谢3楼给的提示,已经解决了,发现抓包工具没有抓到那个页面,后来是通过FIREBUG来分析页面的时候,抓包获取到的,
angelywc 2012-09-20
  • 打赏
  • 举报
回复
COOKIES是有的,但是就是不知道这个是怎么来的,网上查了很多资料,也找不到这个关于BDUSS,在本地的COOKIES里,这个BDUSS字段是有,但是我用抓包工具抓取的时候,就没有发现有这个BDUSS的COOKIES值传递过来过
  • 打赏
  • 举报
回复
用firefox下面的firebug试一下看看能否获取到这个cookie值
angelywc 2012-09-19
  • 打赏
  • 举报
回复
这个问题我已经解决了,是因为COOKIES要设置个,但是现在又遇到问题了,不知道有没有人能解决
就是我已经登陆成功了,返回的值是{"result":"1","msg":"用户名密码正确","loginAfter":[]},是登陆百度的,但是现在需要跳转其他页面,就需要COOKIES这个值,COOKIES里有个BUDSS这个值,无法获取到,请做过百度登陆的大神帮忙解决下,这个值是生成的,还是抓取的,我看了几个页面,发现就是通过http://youxi.baidu.com/v2/api/?getapi&class=login&tangram=true&callback=initBDPassApi&_=1348037438558这个页面以后就开始有了BDUSS的值,但是抓取COOKIES,也没有获得,不知道是怎么生成的
thesun7823 2012-09-17
  • 打赏
  • 举报
回复
具体错误是什么呢
我也一直在研究自动登录 这是以前做的httpwebrequest登录wordpress

109,883

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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