Author: kostat
Date: 2007-01-25 04:53:00 -0500 (Thu, 25 Jan 2007)
New Revision: 71657

Modified:
   trunk/mono/data/net_1_1/DefaultWsdlHelpGenerator.aspx
   trunk/mono/data/net_2_0/DefaultWsdlHelpGenerator.aspx
Log:
support test page using POST request

Modified: trunk/mono/data/net_1_1/DefaultWsdlHelpGenerator.aspx
===================================================================
--- trunk/mono/data/net_1_1/DefaultWsdlHelpGenerator.aspx       2007-01-25 
09:48:45 UTC (rev 71656)
+++ trunk/mono/data/net_1_1/DefaultWsdlHelpGenerator.aspx       2007-01-25 
09:53:00 UTC (rev 71657)
@@ -24,6 +24,7 @@
 <%@ Import Namespace="System.CodeDom.Compiler" %>
 <%@ Import Namespace="Microsoft.CSharp" %>
 <%@ Import Namespace="Microsoft.VisualBasic" %>
+<%@ Import Namespace="System.Text" %>
 <%@ Import Namespace="System.Text.RegularExpressions" %>
 <%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
 <%@ Assembly name="System.Web.Services" %>
@@ -347,7 +348,19 @@
        {
                string url = location + "/" + CurrentOperationName;
                Uri uri = new Uri (url);
-               HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url + 
"?" + qs);
+               WebRequest req;
+               if (CurrentOperationProtocols.IndexOf ("HttpGet") < 0) {
+                       req = WebRequest.Create (url);
+                       req.Method = "POST";
+                       if (qs != null && qs.Length > 0) {
+                               byte [] postBuffer = Encoding.UTF8.GetBytes 
(qs);
+                               req.ContentLength = postBuffer.Length;
+                               using (Stream requestStream = 
req.GetRequestStream ())
+                                       requestStream.Write (postBuffer, 0, 
postBuffer.Length);
+                       }
+               }
+               else
+                       req = WebRequest.Create (url + "?" + qs);
                if (url.StartsWith ("https:"))
                        ServicePointManager.CertificatePolicy = new 
NoCheckCertificatePolicy ();
                HttpCookieCollection cookies = Request.Cookies;

Modified: trunk/mono/data/net_2_0/DefaultWsdlHelpGenerator.aspx
===================================================================
--- trunk/mono/data/net_2_0/DefaultWsdlHelpGenerator.aspx       2007-01-25 
09:48:45 UTC (rev 71656)
+++ trunk/mono/data/net_2_0/DefaultWsdlHelpGenerator.aspx       2007-01-25 
09:53:00 UTC (rev 71657)
@@ -16,6 +16,7 @@
 <%@ Import Namespace="System.Xml.Schema" %>
 <%@ Import Namespace="System.Web.Services" %>
 <%@ Import Namespace="System.Web.Services.Description" %>
+<%@ Import Namespace="System.Web.Services.Configuration" %>
 <%@ Import Namespace="System" %>
 <%@ Import Namespace="System.Net" %>
 <%@ Import Namespace="System.Globalization" %>
@@ -25,6 +26,7 @@
 <%@ Import Namespace="System.CodeDom.Compiler" %>
 <%@ Import Namespace="Microsoft.CSharp" %>
 <%@ Import Namespace="Microsoft.VisualBasic" %>
+<%@ Import Namespace="System.Text" %>
 <%@ Import Namespace="System.Text.RegularExpressions" %>
 <%@ Import Namespace="System.Security.Cryptography.X509Certificates" %>
 <%@ Assembly name="System.Web.Services" %>
@@ -123,7 +125,10 @@
                CurrentOperationProtocols += (string) prots[n];
        }
        
-       CurrentOperationSupportsTest = prots.Contains ("HttpGet") || 
prots.Contains ("HttpPost");
+       WebServiceProtocols testProtocols = WebServiceProtocols.HttpGet | 
WebServiceProtocols.HttpPost;
+       if (Context.Request.IsLocal)
+           testProtocols |= WebServiceProtocols.HttpPostLocalhost;
+       CurrentOperationSupportsTest = 
(WebServicesSection.Current.EnabledProtocols & testProtocols) != 0;
 
        // Operation format
        OperationBinding obin = FindOperation (binding, CurrentOperationName);
@@ -354,7 +359,19 @@
        {
                string url = location + "/" + CurrentOperationName;
                Uri uri = new Uri (url);
-               HttpWebRequest req = (HttpWebRequest) WebRequest.Create (url + 
"?" + qs);
+               WebRequest req;
+               if (CurrentOperationProtocols.IndexOf ("HttpGet") < 0) {
+                   req = WebRequest.Create (url);
+                   req.Method="POST";
+                   if (!String.IsNullOrEmpty (qs)) {
+                       byte [] postBuffer = Encoding.UTF8.GetBytes (qs);
+                       req.ContentLength = postBuffer.Length;
+                       using (Stream requestStream = req.GetRequestStream())
+                           requestStream.Write (postBuffer, 0, 
postBuffer.Length);
+                   }
+               }
+               else
+                   req = WebRequest.Create (url + "?" + qs);
                if (url.StartsWith ("https:"))
                        ServicePointManager.CertificatePolicy = new 
NoCheckCertificatePolicy ();
                HttpCookieCollection cookies = Request.Cookies;

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

Reply via email to