知识大全 .Net整合其他平台的一些探讨[2]

Posted

篇首语:不登高山,不知天之高也;不临深溪,不知地之厚也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .Net整合其他平台的一些探讨[2]相关的知识,希望对你有一定的参考价值。

.Net整合其他平台的一些探讨[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  创建一个自定义代理

  既然已经了解了为什么Web服务返回一个SOAP错误 我们就可以创建一个自定义代理来生成网服务期待的SOAP包装 虽然创建一个自定义SOAP包装肯定比使用一个由VS net或者WSDL exe公用程序生成的SOAP包装要花更多的时间 但是这样做可以完全控制包装的内容 为了开始创建自定义代理 我创建一个名为msnewsserviceproxy的包含两个字段的新类

  以下为引用的内容

public class MSNewsServiceProxy string _uri;

string _soapAction;

  uri字段保存了Web服务的位置 而_soapAction字段保存了将要使用SOAP包装发送的SOAPAction数据头的名称 在MSNewsServiceProxy类之内 添加CreateSoapEnvelope () SendSoapEnvelope ()和FilterResult ()这三个方法 这些方法生成SOAP包装请求 把它发送到Web服务 然后过滤返回的SOAP包装 让我们逐一的看看每个方法 注意代码在SOAP包装的根元素上添加一个SOAP ENV域名空间前缀 Web服务显然需要这个特定的前缀 而拒绝任何不包含这个前缀的信息 因为VS net生成的代理发送一个soap域名空间前缀(而不是SOAP ENV) 所以它的消息被拒绝 Web服务不应该需要一个特定的域名空间前缀而为此拒绝不带此前缀的消息 但是域名空间问题也是你必须注意要想使工作更好的完成 要执行一些看上去不 >可思议的事情

  在SOAP包装被创建之后 SendSoapEnvelope ()方法(见代码段 )使用了几个System Net和System IO域名空间中的类来把这个包装发送到Web服务中 代码首先通过把_uri变量传送到对象构造器来创建一个HttpWebRequest对象 其次 与这个请求相关联的相应的Method ContentType和Header都将被发送

  然后一个StreamWriter对象和HttpWebRequest对象的请求流相关联 SOAP包装就被使用StreamWriter的Write ()方法写到流中

  从Web服务返回的SOAP包装被HttpWebResponse对象的SendSoapEnvelope ()方法获得

HttpWebResponse response = (HttpWebResponse)request GetResponse();

  如果应答不是空值 它将被载入一个XMLTextReader XMLTextReader被用来填充XmlDocument对象 然后从这个方法中返回XmlDocument对象

  FilterSoapEnvelope ()方法分析SOAP应答包装并把从Web服务中返回的数据装入自定义代理的 消费者 使用的XmlDocument对象

  以下为引用的内容

private XmlDocument FilterSoapEnvelope(

XmlDocument doc)

XmlDocument filterDoc =new XmlDocument();

XmlNode result = doc SelectSingleNode( //results );

XmlNode resultImport = filterDoc ImportNode(result true);

filterDoc AppendChild(resultImport);

return filterDoc;

  虽然过滤器可以使用好几种方法执行 但是FilterSoapEnvelope ()方法依靠XPath语句可以在应答SOAP包装中得到结果元素

  微软新闻组PHP Web服务展示了允许取得新闻组新闻摘要的两种方法 getheaders ()和getmessage () 你可以看到如何在自定义代理类中使用这两种方法(见代码段 ) 注意每个方法中的代码传递Web服务方法名被调用到CreateSoapEnvelope ()方法和任何使用这个方法关联的参数 在SOAP包装被发送以及应答被接受之后 FilterSoapEnvelope ()方法被调用来把返回的数据加载到一个XmlDocument对象中 同样 这个对象也是代理 消费者 使用的

cha138/Article/program/net/201311/15521

相关参考

知识大全 .Net整合其他平台的一些探讨[1]

.Net整合其他平台的一些探讨[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  整合分布式应

知识大全 把.Net整合进其他平台

把.Net整合进其他平台  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!整合分布式应用程序经常是一件

知识大全 .net程序中资源文件的保护办法探讨

在编程序(特别是WinForm时)经常会遇到一些需要加以保护的资源文件比如一些数据库文件图片文件等等我们希望能被自己的程序访问但是又不希望别人把我们辛辛苦苦收集来的数据被别人毫不费力地用于自己的程序中

知识大全 VC++.NET开发环境整合技巧

VC++.NET开发环境整合技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  主窗口内的每一个

知识大全 深入探讨.NET中的钩子技术[2]

深入探讨.NET中的钩子技术[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  三使用代码  

知识大全 ASP.NET 中整合JavaScript的技巧

ASP.NET中整合JavaScript的技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽

知识大全 探讨ASP.NET 2.0的Web控件改进之概述

探讨ASP.NET2.0的Web控件改进之概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言

知识大全 用Web Services来整合.NET和J2EE

用WebServices来整合.NET和J2EE  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 .NET跨平台的第一步

.NET跨平台的第一步  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  NET跨平台的第一步   

膜整合蛋白是怎样定位的?

(1)膜整合蛋白是来自糙面内质网上核糖体所合成的蛋白质,有些合成后嵌入到膜中成为跨膜蛋白,其肽链中一些片段穿过脂双层,而另外的一些则保留在膜中。  (2)具有单一跨膜片段的跨膜蛋白,像可溶性蛋白一样,