Cum citești rata de schimb de pe site-ul BNR – s-a bulit?

De vreo lună încoace, nu mai mergea bucățica de aplicație care citea rata de schimb, aia despre care am scris. Mă înjura de System.IO.IOException: Unable to read data from the transport connection: The connection was closed. Site-ul BNR mergea OK (deși am remarcat ceva schimbări pe el), XML-ul era același și-l puteam deschide în browser… Ce naiba să fie?

Nu știu nici acum ce s-a-ntâmplat. Cert este că am aplicat soluția unui tip pentru reading “chunked” response. Și a mers. Sugerând că, deși nu pare, ar lipsi un caracter de la coada XML-ului dat de BNR? Habar n-am. Zona crepusculară. Oricum, s-a ajuns la:

StringBuilder sbXmlText = new StringBuilder();
try
{
    WebClient MyWebClient = new WebClient();
    Stream TheStream = MyWebClient.OpenRead("http://www.bnr.ro/nbrfxrates.xml");
    StreamReader TheStreamReader = new StreamReader(TheStream);
    while (!TheStreamReader.EndOfStream)
        sbXmlText.Append((char)TheStreamReader.Read());
}
catch (Exception TheException)
{
    // Do nothing, "swallow" the exception
}
if (sbXmlText.Length < 100) return;
try
{
    //XPathDocument XML_De_La_BNR = new XPathDocument("http://www.bnr.ro/nbrfxrates.xml");
    XmlDocument XML_De_La_BNR = new XmlDocument();
    XML_De_La_BNR.LoadXml(sbXmlText.ToString());

 

…După care se continuă cu codul inițial, din articolul anterior despre subiect.

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s