[IronPython] Silverlight and Catching HttpWebRequest Errors

Jimmy Schementi Jimmy.Schementi at microsoft.com
Mon May 12 10:17:05 CEST 2008


The actual type returned by HttpWebRequest.Create() is a BrowserHttpWebRequest, but it's internal (not sure why). Anyway, it has a ProgressFailed event you can hook.

PS. If you REALLY want synchronous downloading, just hack on XMLHttpRequest

def download(url):
    request = HtmlPage.Window.CreateInstance("XMLHttpRequest")
    request.Invoke("open", "GET", url, false) # false means synchronous
    request.Invoke("send", "")
    return request.GetProperty("responseText")

:)

~js
________________________________________
From: users-bounces at lists.ironpython.com [users-bounces at lists.ironpython.com] On Behalf Of Michael Foord [fuzzyman at voidspace.org.uk]
Sent: Monday, May 12, 2008 12:58 AM
To: Discussion of IronPython
Subject: [IronPython] Silverlight and Catching HttpWebRequest Errors

Hello guys,

I have a problem with catching network errors raised by HttpWebRequest
in Silverlight. (Not necessarily an IronPython specific question - but
you guys are so intelligent you are always the first place I turn...)

HttpWebRequest uses an async model for fetching resources. If there is a
problem (triggered usually by a slow response from the server), then it
can happen *after* I have made the request - but before my callback is
invoked. This gives me nowhere to catch the exception, as effectively it
happens 'inside Silverlight'. I wondered if there was a solution... ?


def callback(asyncResult):
    ...

uri = Uri(some_url)
req = HttpWebRequest.Create(uri)

req.BeginGetResponse(AsyncCallback(callback), object())

The error occurs after BeginGetResponse, but before calback. Any ideas
for catching it?

Michael Foord
http://www.ironpythoninaction.com/


_______________________________________________
Users mailing list
Users at lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com



More information about the Ironpython-users mailing list