首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CookieContainer返回空

CookieContainer返回空
EN

Stack Overflow用户
提问于 2013-06-19 22:18:10
回答 2查看 530关注 0票数 0

大家好,我有以下代码

代码语言:javascript
复制
        Uri site = new Uri("http://www.receita.fazenda.gov.br/pessoajuridica/cnpj/cnpjreva/Cnpjreva_Solicitacao2.asp");
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(site);
        CookieContainer cookies = new CookieContainer();
        request.CookieContainer = cookies;

        //Console.WriteLine(cookies.GetCookieHeader(site));

        //Get the response and print out the cookies again
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            Console.WriteLine(cookies.GetCookieHeader(site));
        }

        Console.Write("end");

        Console.ReadKey();

这段代码返回Cookie OK,但是如果我将URI更改为http://www8.receita.fazenda.gov.br/SimplesNacional/Aplicacoes/ATBHE/ConsultaOptantes.app/ConsultarOpcao.aspx,它将不能正确显示,它将返回空

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-19 22:24:42

位于新URL的服务器不会尝试设置任何cookie,因此容器中当然没有cookie。修改你的ASP代码来设置一个cookie,它就可以工作了。

票数 0
EN

Stack Overflow用户

发布于 2013-06-19 22:26:12

将以下内容添加到您的cookie:, domain=.receita.fazenda.gov.br。这说明您的cookie可以与receita.fazenda.gov.br的任何子域一起使用。看看RFC on cookies或使用这篇Wikipedia文章。

更新:重新阅读你的操作,可能有一些事情会出错。

一件事是,站点在请求www8.receita.fazenda.gov.br时没有设置cookie (正如其他人所提到的)。或者,该站点没有将随请求响应一起发送的cookie的domain字段设置为www.receita.fazenda.gov.br。我认为很可能是前者--当请求被发出时,cookie不是由web服务器设置的。

另一件事是你可能忘记了请求正确站点的cookie头??上面有一行代码读取Console.WriteLine(cookies.GetCookieHeader(site));,其中site被硬编码为与www8.receita.fazenda.gov.br不同的System.Uri。如果是这种情况,那么您请求的cookie与请求所针对的站点不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17193695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档