Author: jbevain
Date: 2007-10-17 11:26:10 -0400 (Wed, 17 Oct 2007)
New Revision: 87689

Modified:
   
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
   trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
Log:
2007-10-17  Jb Evain  <[EMAIL PROTECTED]>

        * BrowserHttpWebRequest.cs: start working on GetResponse().



Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
===================================================================
--- 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
    2007-10-17 15:23:27 UTC (rev 87688)
+++ 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/BrowserHttpWebRequest.cs
    2007-10-17 15:26:10 UTC (rev 87689)
@@ -31,6 +31,8 @@
 using System.IO;
 using System.Net;
 
+using Mono;
+
 namespace System.Windows.Browser.Net
 {
        public class BrowserHttpWebRequest : HttpWebRequest
@@ -39,6 +41,7 @@
                Uri uri;
                string method = "GET";
                WebHeaderCollection headers = new WebHeaderCollection ();
+               BrowserHttpWebResponse response = null;
 
                public BrowserHttpWebRequest (Uri uri)
                        : base (uri)
@@ -137,12 +140,27 @@
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
                public override HttpWebResponse GetResponse ()
                {
-                       throw new NotImplementedException ();
+                       IntPtr plugin_handle = 
System.Windows.Interop.PluginHost.Handle;
+                       if (plugin_handle == IntPtr.Zero)
+                               throw new InvalidOperationException ();
+
+                       int size = 0;
+                       //IntPtr n = NativeMethods.plugin_instance_load_url 
(plugin_handle, uri.AbsolutePath, ref size);
+                       byte [] data = new byte [size];
+                       unsafe {
+                       //      using (Stream stream = new 
SimpleUnmanagedMemoryStream ((byte *) n, size))
+                       //              stream.Read (data, 0, size);
+                       }
+
+                       //Helper.FreeHGlobal (n);
+
+                       BrowserHttpWebResponse response = new 
BrowserHttpWebResponse (new MemoryStream (data));
+                       this.response = response;
+                       return response;
                }
-               
+
                public override string Accept {
                        get { return headers [HttpRequestHeader.Accept]; }
                        set { headers [HttpRequestHeader.Connection] = value; }
@@ -174,7 +192,8 @@
 
                public override long ContentLength {
                        get {
-                                       return long.Parse (headers 
[HttpRequestHeader.ContentLength], NumberStyles.Integer, 
CultureInfo.InvariantCulture);
+                               // silverlight 1.1 throws FormatException on 
ContentLength when it's not set.
+                               return long.Parse (headers 
[HttpRequestHeader.ContentLength], NumberStyles.Integer, 
CultureInfo.InvariantCulture);
                        }
                        set {
                                headers [HttpRequestHeader.ContentLength] = 
value.ToString (CultureInfo.InvariantCulture);
@@ -206,9 +225,8 @@
                        set { headers [HttpRequestHeader.Expect] = value; }
                }
 
-               [MonoTODO]
                public override bool HaveResponse {
-                       get { throw new NotImplementedException (); }
+                       get { return response != null; }
                }
 
                public override WebHeaderCollection Headers {
@@ -275,15 +293,10 @@
                        set { headers [HttpRequestHeader.UserAgent] = value; }
                }
 #else
-               public BrowserHttpWebRequest (Uri uri)
+               BrowserHttpWebRequest ()
                        : base (null, default 
(System.Runtime.Serialization.StreamingContext))
                {
-                       throw new NotSupportedException ("BrowserHttpWebRequest 
can only be used in the context of a plugin");
                }
-
-               ~BrowserHttpWebRequest ()
-               {
-               }
 #endif
        }
 }

Modified: 
trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog
===================================================================
--- trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog   
2007-10-17 15:23:27 UTC (rev 87688)
+++ trunk/olive/class/System.Silverlight/System.Windows.Browser.Net/ChangeLog   
2007-10-17 15:26:10 UTC (rev 87689)
@@ -1,5 +1,9 @@
 2007-10-17  Jb Evain  <[EMAIL PROTECTED]>
 
+       * BrowserHttpWebRequest.cs: start working on GetResponse().
+
+2007-10-17  Jb Evain  <[EMAIL PROTECTED]>
+
        * BrowserHttpWebResponse.cs: stubbed out.
 
 2007-10-17  Jb Evain  <[EMAIL PROTECTED]>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to