Quantcast
Channel: HttpWebRequest - NFE
Viewing all articles
Browse latest Browse all 9

HttpWebRequest - NFE

0
0

Boas amigos.

Me encontro num problema o qual não faço menor ideia de como irei resolve e conto com a ajuda de vocês.

Estou acessando o seguinte endereço: " http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8%3d "

O que deve acontecer:

Resgate de captcha ( ok, funciona )

Porem o post está me matando, quando faço o primeiro GET na pagina, ele me retorna o hash base64, beleza, mas ai num outro metodo que faz o post tenho que criar o mesmo componente e automaticamente ele cria uma nova hash base64, pois ele da outro get.

Tentei colocar o HttpWebRequest como STATIC e o CookieContainer tambem, o Cookie funcinou, já o Http ele não aceita que eu modifique após o primeiro GET.

Utilizar WebService não é uma opção devido a logica do negócio ( limitação do webservice do SEFAZ que me permite baixar apenas 50 notas )

Codigo da minha tentativa de consulta ( POST )

        private string _erro;
        public Image Captcha;
        private static CookieContainer cookieContainer;
        private String UrlBase = "http://www.nfe.fazenda.gov.br/portal/consulta.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8%3d";
        public String ErroDetectado { get { return _erro; } }
        protected HttpWebRequest req;

public void ConsultarNota(string chave, string captcha) { string parametros = "ctl00$ContentPlaceHolder1$txtChaveAcessoCompleta=" + System.Uri.EscapeDataString(chave) + "&ctl00$ContentPlaceHolder1$txtCaptcha=" + System.Uri.EscapeDataString(captcha) + "&ctl00$ContentPlaceHolder1$btnConsultar=Continuar"; req = (HttpWebRequest)WebRequest.Create(UrlBase); req.CookieContainer = cookieContainer; req.ContentLength = parametros.Length; req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; req.Timeout = 20000; req.AllowAutoRedirect = true; StreamWriter stParametros = new StreamWriter(req.GetRequestStream(), Encoding.GetEncoding("ISO-8859-1")); stParametros.Write(parametros); stParametros.Close(); HttpWebResponse response = (HttpWebResponse)req.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { StreamReader stHtml = new StreamReader(req.GetResponse().GetResponseStream(), Encoding.GetEncoding("ISO-8859-1")); string retorno = stHtml.ReadToEnd(); } }


Notas importantes:

Uma vez que vc clica em consultar/continuar no site, ele da um post para a url que comentei no inicio e ela redireciona para a seguinte url:

" http://www.nfe.fazenda.gov.br/portal/consultaCompleta.aspx?tipoConteudo=XbSeqxE8pl8= "

Mas se eu tentar dar post direto nessa pagina, ele me retorna que a sessão expirou.


Viewing all articles
Browse latest Browse all 9

Latest Images

Trending Articles





Latest Images