使用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,因为这个方法只是最大应用程序的一部分,所以我想问你修改当前代码的可能性。
答案 0 :(得分:0)
问题原来是请求的发送不正确。我必须在请求(来源)中设置正确的标头,以避免多次重定向(服务器仅对我有用,因为它收到了错误的请求)。
代码正确。