Probleme cu extragerea informațiilor valutare BNR din XML-ul publicat pe site (Romanian)

Începând din 4 iunie 2009 cei care lucrează la situl Web BNR au modificat modul în care fișierele cu extensie XML sunt descărcate/vizualizate: înainte de această dată accesul la datele referitoare la cursul valutar se făcea prin simpla accesare a XML-ului de la adresa http://www.bnro.ro/nbrfxrates.xml, însă odată cu modificarea survenită (undeva la nivelul setărilor MIME types de pe serverul respectiv) URL-ul nu mai oferă conțintul XML direct, ci doar ca fișier atașat, putând fi descărcat/vizualizat abia după alegerea opțiunii Open sau Save dintr-o fereastră de dialog afișată de către browser. Aceasta nu e o problemă majoră dacă o persoană încearcă accesarea XML-ului manual, dar construcțiile programatice tip XML.Load(url) nu mai funcționează corect. Cea mai simplă soluție de rezolvare ar fi ca cei de la BNR să rezolve problema, revenind la setările anterioare.

Actualizare: După am scris (de două ori) despre acest lucru webmaster-ului sitului (vineri și azi) se pare că problema s-a rezolvat (destul de prompt, aș putea adăuga)!

Actualizare: În final însă, din păcate, s-au decis pentru metoda attachment, în loc de inline, așadar iarăși nu merge. Trebuie să găsim o altă soluție pentru rezolvare.

Actualizare: Soluția funcțională găsită este următoarea:

WebClient webClient = new WebClient();
using (Stream webStream = webClient.OpenRead("
http://www.bnro.ro/nbrfxrates.xml"))
{
    MemoryStream memoryStream = new MemoryStream();
    byte[] buffer = new byte[1024];
    while (true)
    {
        try
        {
            int readLength = webStream.Read(buffer, 0, buffer.Length);
            if (readLength <= 0)
                break;
            memoryStream.Write(buffer, 0, readLength);
        }
        catch (IOException)
        {
            break;
        }
    }
    memoryStream.Seek(0, SeekOrigin.Begin);
    using (StreamReader streamReader = new StreamReader(memoryStream))
    {
        Console.WriteLine(streamReader.ReadToEnd());
    }
}

About Sorin Dolha

My passion is software development, but I also like physics.
This entry was posted in Computere și Internet. Bookmark the permalink.

Add a reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s