软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

当前位置: 第八基地首页 > asp.net > Framework >
把.Net整合进其他平台
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2016-04-27 点击:229
整合PHPWeb服务

既然一个自定义代理类已经准备好被使用,那么把它整合进一个ASP.net页面就变得很简单了。getHeaders()和getMessage()方法可以调用Web服务,存取返回的XMLDocument对象(见代码段6和7)在XMLDocument内的子结点中的枚举可以显示这些数据。虽然许多Web服务可以很容易地使用VS.net或者WSDL.exe创建的代理类自动地生成,但是仍然会有你需要创建自定义SOAP包装来把.Net和其他的平台整合起来的情况。本文中介绍的内容以及代码就提供了完成这个整合工作的一种方法。

代码段1:
POSThttp://www.codecraze.com/soap/nntp.phpHTTP/1.1
User-Agent:Mozilla/4.0(compatible;
MSIE6.0;MSWebServicesClientProtocol1.0.2914.16)
Content-Type:text/xml;charset=utf-8
SOAPAction:"http://www.codecraze.com/soap/nntp.php"
Content-Length:683
Expect:100-continue
Connection:Keep-Alive
Host:www.codecraze.com

<?xmlversion="1.0"encoding="utf-8"?>
<soap:Envelopexmlns:soap=
"http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/
encoding/"
xmlns:tns="http://tempuri.org/"
xmlns:types="http://tempuri.org/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body
soap:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/">
<q1:getheadersxmlns:q1=
"http://www.codecraze.com/soap/nntp.xsd">
<newsgroupxsi:type="xsd:string">
microsoft.public.dotnet.xml
</newsgroup>
<numitemsxsi:type="xsd:string">15</numitems>
</q1:getheaders>
</soap:Body>
</soap:Envelope>

代码段2:

HTTP/1.1200OK
Date:Apr,16Dec200215:57:47GMT
Server:Apache/1.3.20(Unix)ApacheJServ/1.1.2PHP/
4.0.4pl1FrontPage/5.0.2.2510Rewrit/1.1a
X-Powered-By:PHP/4.0.4pl1
Content-Length:419
Keep-Alive:timeout=15,max=100
Connection:Keep-Alive
Content-Type:text/xml;charset="utf-8"

<?xmlversion="1.0"encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/
envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/
soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client.SOAPMessageFormat</
faultcode>
<faultstring>
messagedoesnothaveacorrectSOAProotXMLtag
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

代码段3:

privatestringCreateSoapEnvelope(
stringmethod,string[]param1,
string[]param2){
StringBuildersb=newStringBuilder();
sb.Append("<SOAP-ENV:Envelope");
sb.Append("xmlns:SOAP-" 
"ENV=\"http://schemas.xmlsoap.org/soap/
envelope/\"");
sb.Append("xmlns:xsi=
\"http://www.w3.org/1999/XMLSchema-" 
instance\"");
sb.Append("xmlns:xsd=
\"http://www.w3.org/1999/XMLSchema\">");
sb.Append("<SOAP-ENV:Body>");
sb.Append("<m:" method "xmlns:m=\"nntp.xsd\">");
sb.Append("<" param1[0] ">" param1[1] 
"</" param1[0] ">");
sb.Append("<" param2[0] ">" param2[1] 
"</" param2[0] ">");
sb.Append("</m:" method ">");
sb.Append("</SOAP-ENV:Body>");
对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈