12,162
社区成员
发帖
与我相关
我的任务
分享
private static XmlDocument QuerySoapWebService(String URL, String MethodName, Hashtable Pars, string XmlNs)
{
_xmlNamespaces[URL] = XmlNs;//加入缓存,提高效率
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
//System.Net.ServicePointManager.Expect100Continue = false;
System.Net.ServicePointManager.Expect100Continue = false;
//request. = false;
request.AllowAutoRedirect = false;
request.Method = "POST";
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.ContentType = "text/xml; charset=utf-8";
request.Headers.Add("SOAPAction", "\"" + XmlNs + (XmlNs.EndsWith("/") ? "" : "/") + MethodName + "\"");
SetWebRequest(request);
byte[] data = EncodeParsToSoap(Pars, XmlNs, MethodName); //Encoding.UTF8.GetBytes(Pars["requestXML"].ToString());//
WriteRequestData(request, data);
XmlDocument doc = new XmlDocument(), doc2 = new XmlDocument();
doc = GetResponseBody(request.GetResponse());//ReadXmlResponse
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
String RetXml = doc.SelectSingleNode("//soap:Body/*/*", mgr).InnerXml;
RetXml = RetXml.Replace("<", "<").Replace(">", ">");
doc2.LoadXml(RetXml);
return doc2;
}