Jimmy Schementi wrote:
So, did some homework on this. Taking a look at BrowserHttpWebRequest with 
Reflector, it definitely has a public ProgressFailed event, but it says it's 
read-only.

Dino/Curt, could this behavior happen because BrowserHttpWebRequest has a 
methods and events by exactly the same name?

    private EventHandler<NetworkProgressChangedEventArgs> ProgressChanged;
    private EventHandler<NetworkProgressChangedEventArgs> ProgressCompleted;
    private EventHandler<NetworkProgressChangedEventArgs> ProgressFailed;

    // Events
    public event EventHandler<NetworkProgressChangedEventArgs> ProgressChanged;
    public event EventHandler<NetworkProgressChangedEventArgs> 
ProgressCompleted;
    public event EventHandler<NetworkProgressChangedEventArgs> ProgressFailed;

Michael, regardless, for simple downloading I'd use WebClient; the code is much 
more concise:

In beta 1 you couldn't do POST requests with WebClient I don't think. Has that changed in beta 2?

Once I have finished chapter 15 of IronPython in Action I need to go through all my Silverlight stuff and update it to beta 2.

Michael Foord

from System.Net import WebClient
from System import Uri

def Downloaded(sender, args):
    print args.Result

uri = Uri('http://localhost:2060/index.html')
req = WebClient()
req.DownloadStringCompleted += Downloaded
req.DownloadStringAsync(uri)

Do you still have time to change your book's example? =P

~Jimmy

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:users-
[EMAIL PROTECTED] On Behalf Of Michael Foord
Sent: Wednesday, May 14, 2008 2:58 PM
To: Discussion of IronPython
Subject: Re: [IronPython] Silverlight and Catching HttpWebRequest
Errors

Michael Foord wrote:
Michael Foord wrote:
On May 12, 9:17 am, Jimmy Schementi <[EMAIL PROTECTED]>
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

Sorry for the noise. This one is actually for the sake of google (and
all who sail in her).

Exception
   at MS.Internal.XcpImports.GetDownloaderBytes(IntPtr element, IntPtr&
outBytes, Int32& outSize)
   at MS.Internal.InternalWebRequest.GetResponseStream()
   at System.Net.BrowserHttpWebRequest.Completed(Object sender,
EventArgs e)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32
typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr
unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

Michael

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: [EMAIL PROTECTED]
[EMAIL PROTECTED] On Behalf Of Michael Foord
[EMAIL PROTECTED]
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

[EMAIL PROTECTED]://lists.ironpython.com/listinfo.cgi/user
s-ironpython.com
_______________________________________________
Users mailing list

[EMAIL PROTECTED]://lists.ironpython.com/listinfo.cgi/user
s-ironpython.com
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to