[IronPython] Silverlight and Catching HttpWebRequest Errors
Michael Foord
fuzzyman at voidspace.org.uk
Wed May 14 23:54:43 CEST 2008
Michael Foord wrote:
> On May 12, 9:17 am, Jimmy Schementi <Jimmy.Scheme... at microsoft.com>
> wrote:
>
>> 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.
>>
>
> Hello Jimmy,
>
> As far as I can tell it *doesn't* have the 'ProgressFailed' event.
>
The actual failure I see is:
Exception: [Arg_COMException]
Arguments:
Debugging resource strings are unavailable. Often the key and arguments
provide sufficient information to diagnose the problem. See
http://go.microsoft.com/fwlink/?linkid=106663&Version=2.0.30226.1&File=mscorlib.dll&Key=Arg_COMException
This is using Safari. As I'm developing on the Mac I can't use
debugging, nor can I test in Firefox because of the bug in Chiron.
It looks like some people have similar errors:
http://silverlight.net/forums/p/12500/40967.aspx#40967
and a guy in the comments here:
http://www.cameronalbert.com/post/2008/03/HttpWebRequest-Helper-for-Silverlight-2.aspx
All the best,
Michael Foord
http://www.ironpythoninaction.com/
> I need to make cross-domain POST, and although the request gets made
> successfully I'm getting a COM Arg Exception everytime (I think
> because the server is slow to respond). This is screwing me at the
> moment.
>
> FYI - when I execute the following code in Silverlight:
>
> from System.Net import WebRequest
> from System import Uri
>
> u = Uri('http://www.v.com')
> req = WebRequest.Create(u)
> print req.ProgressFailed
>
> I get the following exception:
>
> Traceback (most recent call last):
> File "None", line 6, in <undefined>
> AttributeError: 'BrowserHttpWebRequest' object has no attribute
> 'ProgressFailed'
>
> All the best,
>
> Michael Foord
> http://www.ironpythoninaction.com/
>
>
>> 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-boun... at lists.ironpython.com [users-boun... at lists.ironpython.com] On Behalf Of Michael Foord [fuzzy... 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 Foordhttp://www.ironpythoninaction.com/
>>
>> _______________________________________________
>> Users mailing list
>> Us... at lists.ironpython.comhttp://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>> _______________________________________________
>> Users mailing list
>> Us... at lists.ironpython.comhttp://lists.ironpython.com/listinfo.cgi/users-ironpython.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