Boa tarde, pessoal. Vou primeiro explicar a situação e depois relatar o problema.

SITUAÇÃO:

1) A seguinte leitura de um QRCode de uma nota fiscal eletrônica de supermercado:

Link de Consulta a Nota Fiscal

Retorna a seguinte tela

2) Ao editar o código fonte desta página (fiz no Mozilla), obtenho o seguinte código

3) Fiz no Visual Studio um programa em C# - Aplicativo de Console (.NET Framework) com o seguinte código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string sURL;
/* sURL = "http://www.microsoft.com"; */
sURL = "http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode?p=33190331210180001727651420001961861001961861|2|1|5|74ef54c22dbf843d7dfe9d4ed04917cd71ad6f01";

WebRequest wrGETURL;
wrGETURL = WebRequest.Create(sURL);

WebProxy myProxy = new WebProxy("myproxy", 80);
myProxy.BypassProxyOnLocal = true;

wrGETURL.Proxy = WebProxy.GetDefaultProxy();

Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();

StreamReader objReader = new StreamReader(objStream);

string sLine = "";
int i = 0;

while (sLine != null)
{
i++;
sLine = objReader.ReadLine();
if (sLine != null)
Console.WriteLine("{0}:{1}", i, sLine);
}
Console.ReadLine();

}
}
}

4) Mas recebo como retorno o seguinte resultado

PROBLEMA:

Porque o meu programa não retorna o código da figura do item 2?

Desde já agradeço qualquer ajuda.

Att,

Rodrigo

Exibições: 43

Respostas a este tópico

Boaaas... 

Apesar de quase nunca ter feito "quase" nada usando WebRequest, eu acredito que o problema seja pelo fato do html estar sendo gerado dinamicamente no lado cliente, por js talvez, portanto, não sei se o wrGETURL.GetResponse().GetResponseStream() consegue esperar esse js gerar o html da página para depois ler.

Veja na imagem abaixo, onde adicionei ao seu código, apenas um objReader.ReadToEnd() e ao retornar o html, ele reclama do javascript.

Se for seguir essa linha de gerar o html para depois "baixar" e interpretar, eu aconselharia usar um controle WebBrowser como o EO.WebEngine(acho que é pago, mas dá para testar de boa) que permite renderizar em memoria a pagina inteira(inclusive os scripts js) e depois trabalhar com esse retorno.

RSS

© 2020   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço