【问题标题】:C# - WebRequest: Too many automatic redirections were attemptedC# - WebRequest:尝试了太多自动重定向
【发布时间】: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 发帖说明您正在寻找什么类型的答案。
  • 感谢提示和回复。我想,我的要求现在会更清楚了。

标签: c# redirect cookies


【解决方案1】:

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

代码是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多