Jimmy Schementi wrote:
Michael Foord wrote:
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

Yep, POST is now supported by WebClient. For cross-domain post, you must have something like <allow-from 
http-request-headers="*"><domain uri="*" /></allow-from> in the 
clientaccesspolicy.xml file on the server.

Thanks.

Michael

~js

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

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


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/
http://www.trypython.org/
http://www.ironpython.info/
http://www.theotherdelia.co.uk/
http://www.resolverhacks.net/

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

Reply via email to