使用HttpWebRequest登录失败
本文关键字:失败 登录 HttpWebRequest 使用 | 更新日期: 2023-09-27 18:27:20
如有任何帮助,我们将不胜感激。
我正在尝试使用我的用户和密码凭据以编程方式登录www.penson.com。
当使用浏览器(Chrome)进行此操作时,登录链接如下:https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?登录进度=是
使用此链接登录后,链接如下:https://online.penson.com/(q3lsh145vubfki45dl1tr1yc)/Default.aspx?LI=Y
从那时起,我继续与网站合作…当然,每次我进入网站时,这个链接都会发生变化,其中包含一个不同的"Guid"。
现在,我在代码中所做的是:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
"https://online.penson.com/Default.aspx?LoginInProgress=YES");
request.Credentials = new NetworkCredential(myUser, myPassword);
request.CookieContainer = new CookieContainer();
request.AllowAutoRedirect = false;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = 0;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamResponse = response.GetResponseStream();
StreamReader sr = new StreamReader(streamResponse);
string result = sr.ReadToEnd();
"result"字符串如下所示(为了简化显示,我编辑了HTML结构):
对象已移动到href='/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?LoginProgress=YES’
从这个字符串中,我提取了"href"子字符串,然后我尝试创建另一个完整地址为的请求
https://online.penson.com/(cls10ljriatq2luvwyzo4eyq)/Default.aspx?登录进度=是
这个不起作用,解析流响应表明我仍在登录网页中,实际上还没有继续转发下一个网页。
我正试图找出代码出了什么问题。我想我想得到"Guid"并将其解析为登录地址的想法并不准确。
有人能给我指一个特定的解决方案吗?
使用Fiddler或Wireshark比较成功的请求(使用某些浏览器发出)和失败的请求。。。然后通过删除/添加任何需要的内容来模仿代码中的成功请求,Cookie通常是这种情况下的"罪魁祸首"之一——有时是特定的referer或类似的。。。
除了编码部分:检查他们的条款/条件是否禁止以这种方式自动登录!