【问题标题】:HttpWebRequest no accepting cookies C#HttpWebRequest 不接受 cookie C#
【发布时间】:2015-02-03 23:15:35
【问题描述】:

我在 HttpWebRequest 接受 cookie 时遇到问题,这是我的代码:

        HttpWebRequest req= (HttpWebRequest)WebRequest.Create("https://www.companyabc.com/security?action=authenticate");
        req.CookieContainer = new CookieContainer();
        req.CookieContainer.Add(new Uri("https://www.companyabc.com"), new CookieCollection());
        string postData = "account_id=xxxx&password=xxxx";
        req.KeepAlive = true;

        byte[] send = Encoding.Default.GetBytes(postData);
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = send.Length;

        Stream sout = req.GetRequestStream();
        sout.Write(send, 0, send.Length);
        sout.Flush();
        sout.Close();

我得到的回应是:

对不起... 我们检测到您的浏览器未设置为允许会话 Cookie。我们的平台使用 cookie 来帮助提升您的整体用户体验。没有它们,您将无法登录。 请启用会话 Cookie 并重试。联系我们 ....

我做错了什么?提前谢谢你。

仅供参考,我可以通过浏览器访问网页并登录,而不会出现任何问题。当我尝试自动化该过程时,问题就出现了。

【问题讨论】:

  • error message 准确地告诉您您需要做什么@JohnSmith 您需要转到浏览器中的选项并启用 Cookie.. 如果您需要一步一步做一个谷歌搜索以下MSDN Enable Cookies 一个简单的google search 将产生以下MSDN HttpWebRequest.CookieContainer example
  • 只是想写下来 XD
  • @MethodMan 你在用什么“浏览器”?并且 OP 似乎正在做你告诉他遵循的链接所做的事情。
  • @mason We have detected that your browser is not set up to allow Session Cookies. 正是他的错误消息所说的......这就是
  • 是的,但他没有使用浏览器。这是代码。他已经在做你让他做的事情了。我不认为您的评论对讨论有任何帮助。

标签: c# asp.net cookies httpwebrequest


【解决方案1】:

听起来您正在与之交谈的 url 需要一些特定的标题。尝试将 User-Agent 标头设置为 Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0(默认的 Firefox UserAgent)。

如果失败,请查看 Firefox 中的请求(打开开发人员工具,并在按下登录按钮之前切换到“网络”选项卡)并查看该请求还有哪些其他标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多