Hello Everyone我有以下代码
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,但是如果我将URI更改为http://www8.receita.fazenda.gov.br/SimplesNacional/Aplicacoes/ATBHE/ConsultaOptantes.app/ConsultarOpcao.aspx,则表明它没有正确显示它返回空
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
新网址上的服务器不会尝试设置任何Cookie,因此容器中当然没有Cookie。修改您的ASP代码以设置cookie,它将起作用。
答案 1 :(得分:0)
将以下内容添加到您的Cookie中:, domain=.receita.fazenda.gov.br
。这表示您的Cookie可以与receita.fazenda.gov.br
的任何子域一起使用。查看有关Cookie的RFC或使用此Wikipedia文章。
更新:重新阅读你的OP,可能有一些事情可能会出错。
有一件事是,在提出www8.receita.fazenda.gov.br
请求时,网站没有设置cookie(如其他人所述)。或者,该网站未将发送的Cookie的domain
字段与请求的响应设置为www.receita.fazenda.gov.br
。我认为可能是前者 - 在提出请求时,Web服务器没有设置cookie。
另一件事可能是你忘了为正确的网站请求cookie标头?在上方,您有一行代码为Console.WriteLine(cookies.GetCookieHeader(site));
,其中site
被硬编码为与System.Uri
不同的www8.receita.fazenda.gov.br
。如果是这种情况,那么您要求的网站与提出请求的网站不同。