.net中如何采用POST方式调用WebService?
.Net项目中需要调用一个只允许POST方式的WebService.
我在"添加Web引用"的窗口的地址中输入WebService的地址,返回404(未找到)的错误信息.服务器上的日志显示采用了GET方式.我不知道怎么改用POST方式来请用服务.
另外,我从网上下载了一个动态调用WebService的类,并调用其中的QuerySoapWebService方法,其中明确指定的POST方式,但还是返回同样的错误信息.
private static XmlDocument QuerySoapWebService(String url, String methodName, Hashtable Pars, string XmlNs,string cerPath)
{
_xmlNamespaces[url] = XmlNs;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
request.Headers.Add("SOAPAction", "\"" + XmlNs + (XmlNs.EndsWith("/") ? "" : "/") + methodName + "\"");
SetWebRequest(request, cerPath);
byte[] data = EncodeParsToSoap(Pars, XmlNs, methodName);
WriteRequestData(request, data);
XmlDocument doc = new XmlDocument(), doc2 = new XmlDocument();
doc = ReadXmlResponse(request.GetResponse()); //这里返回错误信息了.
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
String RetXml = doc.SelectSingleNode("//soap:Body/*/*", mgr).InnerXml;
doc2.LoadXml("<root>" + RetXml + "</root>");
AddDelaration(doc2);
return doc2;
}
请帮我分析分析,谢谢啦.
我在"添加Web引用"的窗口的地址中输入WebService的地址,返回404(未找到)的错误信息.服务器上的日志显示采用了GET方式.我不知道怎么改用POST方式来请用服务.
另外,我从网上下载了一个动态调用WebService的类,并调用其中的QuerySoapWebService方法,其中明确指定的POST方式,但还是返回同样的错误信息.
private static XmlDocument QuerySoapWebService(String url, String methodName, Hashtable Pars, string XmlNs,string cerPath)
{
_xmlNamespaces[url] = XmlNs;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.ContentType = "text/xml; charset=utf-8";
request.Headers.Add("SOAPAction", "\"" + XmlNs + (XmlNs.EndsWith("/") ? "" : "/") + methodName + "\"");
SetWebRequest(request, cerPath);
byte[] data = EncodeParsToSoap(Pars, XmlNs, methodName);
WriteRequestData(request, data);
XmlDocument doc = new XmlDocument(), doc2 = new XmlDocument();
doc = ReadXmlResponse(request.GetResponse()); //这里返回错误信息了.
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("soap", "http://schemas.xmlsoap.org/soap/envelope/");
String RetXml = doc.SelectSingleNode("//soap:Body/*/*", mgr).InnerXml;
doc2.LoadXml("<root>" + RetXml + "</root>");
AddDelaration(doc2);
return doc2;
}
请帮我分析分析,谢谢啦.
...全文
相关推荐
HttpURLConnection调用.net WebService
使用HttpURLConnection直接调用.net的WebService
PHP使用SOAP调用.net的WebService数据
需要和一个.net系统进行数据交换,对方提供了一个WebService接口,使用PHP如何调用这个数据呢,下面就看看使用SOAP调用的方法吧
C# 调用PHP webservice
C# 调用PHP webservice
iOS开发之结合asp.net webservice实现文件上传下载
iOS开发中会经常用到文件上传下载的功能,这篇文件将介绍一下如何结合asp.net webservice实现文件上传下载。
WebService速查手册HandBood系列(By FengGe整理)
WebService速查手册HandBood系列(By FengGe整理)


Web Services
