欢迎来到天天文库
浏览记录
ID:1211912
大小:465.00 KB
页数:24页
时间:2017-11-08
《web service接口开发》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Microsoft.NET体系结构中非常强调WebService,构建WebService接口对.NETFramework开发工具有很大的吸引力,因此很多讲建立WebService机制的文章都是使用.NETFramework开发工具的。 在这篇文章中我们将谈论下面几个方面的问题 1、客户端怎样和WebService通信的 2、使用已存在的WebService创建代理对象 3、创建客户端。这包括: Web浏览器客户端 Windows应用程序客户端 WAP客户端 最好的学习方法是建立一个基于真实世界的实例。我们将使用一个已存在的WebService,这个WebS
2、ervice从纳斯达克获得股票价格,客户端有一个简单的接口,该接口的外观和感觉集中了建立接口的多数语句。 客户端描述 三种客户端都接受客户输入的同一股票代码,如果请求成功,将显示公司名和股票价格,如果代码不可用,将显示一个错误信息。客户端都设置有"GetQuote"和"Reset"按钮以初始化用户的请求。 开发中的注意事项 我使用visualstudio.NET作为我的集成开发环境,beta版没有结合.NETMobileWeb,因此,我们需要使用文本编辑器创建wap客户端,下一个版本的visualstudio.NET将整合入.NETMobileWeb。 客户端怎样与WebSe
3、rvice通讯 我们先复习一下WebService的功能,在我得上一篇文章中曾展示一幅图(如图一),a点的用户将通过Internet执行远程调用调用b点web服务器上的东西,这次通讯由SOAP和HTTP完成。 我们实际执行了b点web服务器上的方法吗?对于新手来说这是一个关键问题,由此你可以想到一系列的安全威胁,作为系统管理员我们不可能让随便什么人使用我们的web资源,让怀有恶意的人破坏敏感数据,而且也不能不提到带宽问题。我们还记得这是一个分布式应用程序,因此我们还不得不关心数据的配置。 为解决这些问题,我们需要复制在用户web服务器上的对象行为,在我们的例子中,我们需要复制b点
4、WebService针对a点的功能,这就意味着我们要创建充当原始webservcie行为的代理对象(proxyobject),这个代理对象象原始WebService那样具有所有的数据接口。那么我们怎样得到公共数据接口的呢? 各位是否还记得WebService代码中的关键字Webonly,每一个Webonly的方法都会被复制到代理对象中,这样将保护我们的敏感数据,避免受到来自WebService终端(比如:b点)的有恶意的黑客的攻击。这种方法我们称为在a、b之间进行的"对象数据同步交换",这一过程称为创建"对象代理". 现在看看图1的修正版,如下图: 代理对象是WebService
5、的基础慨念,所以创建WebService的第一步是创建代理对象,然后我们可以通过多种平台(Web浏览器,WAP,PersonalDigitalAssistant[PDA],SOAP客户端)从代理对象获得数据。创建代理WebService对象 在.NETFramework中携带了一个创建代理对象的工具"WebServiceUtil.exe",在MS_DOS快捷窗口使用这个工具创建代理对象。 语法如下:WebServiceUtil/c:proxy/pa:HTTP://yourDomain/someFolder/ yourWebService.asmx?SDL/c:proxy
6、指示编译器创建一个代理对象/pa:<WebServerURL>找到sdl文件的路径,最后面的"?SDL"目的是使WebService获得SDL订约 上面的是必须要的参数,现在解释一下其他重要参数:/disco:<FileName>创建一个Discovery文件,对不知道精确的url地址的用户而言,Discovery文件是找到WebService的机制之一。它是一个提供WebService的简要说明的xml文件,visualstudio.NET工程将自动创建一个缺省的Discovery文件作为新工程的一部分,也可以启动"DynamicDiscovery"自动跟踪,/l:<Languag
7、eCode>语言可以是C#,VisualBasic或者jscript等,如:/l:Csharp./n:<Namespace>该类所在的名字空间。该名字空间的所有类均可访问这个代理对象。/o:<Location>表示放置创建的文件的位置。缺省为现行目录。/i:<Namespace>附加的名字空间,该名字空间是将输入该类的名字空间。/protocol:<protocolName>应用的协议,如:SOAP,HTTPGET或HTTPPOST。缺省值为:
此文档下载收益归作者所有