【发布时间】:2017-01-21 12:06:07
【问题描述】:
我在使用 WebRequest 类时遇到自动重定向问题。 我创建了一个简单的应用程序,可以登录(使用登录名和密码)到网站并下载一些内容。
我读到一个常见的原因是缺少 CookieContainer。就我而言,在关闭 cookie 之前一切正常。然后重定向工作得很好,但是 - 以这种方式 - 我永远不会登录到我的帐户(我不支持 cookie)......当我尝试打开 cookie 时,我收到一个通信:“重定向太多” -但事实并非如此。登录到 Web 应用程序恰好需要两个重定向 - 我知道并且我检查了我的意见。这不是网页应用程序的错误。
源代码:
private string DoGETrequest(string url)
{
// settings
System.Net.ServicePointManager.Expect100Continue = false;
//
var request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cookieContainer;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
var response = (HttpWebResponse)request.GetResponse();
Uri responseUri = response.ResponseUri;
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
return responseString;
}
我想避免最大重定向数量的问题,并接受登录所必需的 cookie。 最好的解决方案是使用WebRequest,因为这种方法只是最大应用程序的一部分,所以想请教一下修改当前代码的可能性。
【问题讨论】:
-
不太确定您正在寻找什么样的帮助。显然,您尝试使用的站点需要 cookie,如果不支持 cookie,则无法正常工作。您已经知道解决方案(“在关闭 cookie 之前一切正常”)...请edit 发帖说明您正在寻找什么类型的答案。
-
感谢提示和回复。我想,我的要求现在会更清楚了。