Array
(
)

Captura de HTML de uma página web (CSharp)

Leonardo Carvalho
   - 29 abr 2013

Boa tarde, eu estou pegando um xml do site da cinemark, fiz um método responsável por isso e de início ele funcionou, mas depois de um tempo, começou a vir dados errados. => "�" => site:"http://www.cinemark.com.br/mobile/xml/upcoming/"
public static string CapturaInformacoesXML()
{
StringBuilder sb = new StringBuilder();
try
{
string txt;
Uri uri = new Uri("http://www.cinemark.com.br/mobile/xml/upcoming/");
WebRequest request = WebRequest.Create(uri);
WebResponse response = request.GetResponse();
Stream strm = response.GetResponseStream();
StreamReader reader = new StreamReader(strm);
txt = reader.ReadToEnd();
sb.Append(txt);
reader.Close();
txt = "�"; //Valor vindo do site.
}
catch (Exception ex)
{
throw ex;
}
if (sb.Length > 0)
return sb.ToString();
else
return string.Empty;

Joel Rodrigues
   - 29 abr 2013

Se não me engano, onde aparece esse símbolo é por que ali tem um caractere especial ou letra com acento. Tem de definir o charset para UTF-8, mas não lembro como fazer isso agora. Só procurando...=(

Leonardo Carvalho
   - 29 abr 2013

Joel é isso mesmo, o método ficou assim agora...

só não estou conseguindo fazer o mesmo com essa página xml:
http://www.cinemark.com.br/mobile/xml/films/

tentei com praticamente todos os formatos, se tiver como vc dar uma testada ai, será ótimo... que se não der certo vou ficar com essa página de xml q deu certo.

Mais uma vez valeu mesmo Joel.

public static string CapturaInformacoesXML()
{
StringBuilder sb = new StringBuilder();
try
{
string txt;
Uri uri = new Uri("http://www.cinemark.com.br/mobile/xml/upcoming/");
WebRequest request = WebRequest.Create(uri);
WebResponse response = request.GetResponse();

var encoding = new UTF8Encoding();
Stream strm = response.GetResponseStream();
StreamReader reader = new StreamReader(strm, encoding);

//txt = reader.ReadToEnd();
sb.Append(reader.ReadToEnd());
reader.Close();
}
catch (Exception ex)
{
throw ex;
}
if (sb.Length > 0)
return sb.ToString();
else
return string.Empty;
}