[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