Avatar billede milandt Nybegynder
28. december 2008 - 20:18 Der er 6 kommentarer og
1 løsning

XPathDocument timeout

Jeg har en klasse der henter noget xml fra internettet, og cacher det lokalt. Den forventer at på gældende xml fra tid til anden ikke svarer, og i disse tilfælde vil den benytte sig af den cachede version.

Jeg bruger følgende kode for at hente

string path = "http://www.somewhere.com/feed.xml";
XPathDocument doc = new XPathDocument(path);

Jeg kunne godt tænke at new XPathDocument(path) timer ud noget hurtigere end det lader til at være tilfældet som default. Lige nu går der ca 20-30 sekunder før den giver op og kaster en exception. Dette kunne jeg godt tænke mig skete allerede efter 5 sekunder.

Er det muligt, og hvordan?
Avatar billede erikjacobsen Ekspert
28. december 2008 - 20:28 #1
Du kan principielt hente XML-indholdet ved at selv at sætte sockets op, http://php.net/sockets - der er et par eksempler. Der vil du nemlig kunne sætte en timeout. Når du så har XML-strengen behandler du den normalt. Jeg ved ikke om der er noget nemmere.
Avatar billede milandt Nybegynder
28. december 2008 - 20:45 #2
Har du et eksempel på en C#.Net løsning?
Avatar billede erikjacobsen Ekspert
28. december 2008 - 20:51 #3
Jeg skal vist have et læsekursus...

Du kan det samme, rent principielt i C# og .NET - søg selv på C# og socket (eller sockets)
Avatar billede arne_v Ekspert
28. december 2008 - 22:30 #4
I stakken:

URL knowledgable class
WebClient
WebRequest & WebResponse
TCpClient
Socket

må man kunne nøjes med at gå ned i WebRequest & WebResponse.

Noget a la:

            string path = "http://www.somewhere.com/feed.xml";
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(path);
            req.Timeout = 5000;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(resp.GetResponseStream());
            string xml = sr.ReadToEnd();
            sr.Close();
            resp.Close();
            XPathDocument doc = new XPathDocument(new StringReader(xml));
Avatar billede milandt Nybegynder
29. december 2008 - 10:28 #5
Helt perfekt. Du må gerne lægge et svar.
Avatar billede arne_v Ekspert
29. december 2008 - 15:26 #6
moi ?
Avatar billede milandt Nybegynder
29. december 2008 - 17:04 #7
yep. tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester