C# - WebRequest:尝试了太多的自动重定向

时间:2016-09-13 19:30:13

标签: c# redirect cookies

使用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,因为这个方法只是最大应用程序的一部分,所以我想问你修改当前代码的可能性。

1 个答案:

答案 0 :(得分:0)

问题原来是请求的发送不正确。我必须在请求(来源)中设置正确的标头,以避免多次重定向(服务器仅对我有用,因为它收到了错误的请求)。

代码正确。