微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 为Microsoft .NET做好准备

为Microsoft .NET做好准备

时间:05-02 来源:互联网 点击:

个复选框(CheckBox)。

因为SOAPCall函数是在ROPE.bas模块中实现的,对WebServices的调用过程非常简单。

让我们更深入地看一看ROPE.bas模块。以下是一些进行实际SOAP调用的代码(节选自SOAPCall函数):

'SetPayload

lsRequest=lsRequestvbCrLf

lsRequest=lsRequest

/envelope/SOAP:encodingStyle=http://schemas.xmlsoap.org/soap

/encoding/>vbCrLf

lsRequest=lsRequestvbCrLf

vbCrLf

lsRequest=lsRequestMethod>vbCrLf

lsParameterOrder=GetParameterOrder(psServicesDescription,Method)

IflsParameterOrder>Then

lasParameterOrder=Split(lsParameterOrder,)

Fori=0ToUBound(lasParameterOrder)

lsRequest=lsRequestlasParameterOrder(i)>CStr(Arguments(i+1))

vbCrLf

Nexti

EndIf

lsRequest=lsRequestvbCrLf

lsRequest=lsRequest

lsRequest=lsRequest

'GetListener

lsListener=GetListener(psServicesDescription)

'CreateXMLHTTPobject

SetloXMLHTTP=CreateObject(Microsoft.XMLHTTP)

'OpenURLtoListener

loXMLHTTP.OpenPOST,lsListener,False,,

'Setheaderinfo

loXMLHTTP.setRequestHeaderSOAPAction,Method

loXMLHTTP.setRequestHeaderContent-Type,text/xml

'MakerequesttoSOAPservice/method

loXMLHTTP.SendlsRequest

'IfOK,getresponse

IfLen(loXMLHTTP.ResponseXML.XML)>0Then

lsResponse=loXMLHTTP.ResponseXML.XML

SOAPCall=GetReturnValue(lsResponse,Method)

Else

MsgBoxloXMLHTTP.ResponseText

EndIf

代码说明:

lsRequest变量被实际的请求负载(使用XML格式)所填充。除了方法名和参数值以外,内容主要是硬编码的XML文本。GetParameterOrder函数抽取出了参数和它们各自的顺序,以便以正确的顺序接收各个参数。

GetListener函数可以取出Web地址,也就是URL(UniversalResourceLocator,通用资源定位符),来“侦听”WebService。侦听程序是一个Web页面,请求将被发送到这个页面上,该页面使用服务描述语言定义。它通常上是一个ASP(ActiveServerPages)页面,但是使用一个更有效的ISAPI(InternetServerApplicationProgrammingInterface,Internet服务器应用程序编程接口)。

我目前正在使用XMLHTTP进行实际调用,您可以在所有PocketPC上找到该组件。

GetReturnValue函数负责从响应负载(XML格式)中取出返回值。如果发生错误,返回值为错误代码。

虽然没有在上面的代码中显示,但大多数子函数都使用XMLDOM组件(可在所有PocketPC上找到该组件)分析响应XML字符串。而且即便是ROPE.bas模块没有实现所有SOAPToolki所能够实现的所有ROPE功能,但它提供了最重要的大部分功能--足以使您调用WebServices。

如果您希望了解更多详细信息,我建议您认真阅读完整的示例代码。

运行服务

好了,我已经完成了使WebServices开始工作所需的一些基础工作。现在,要由您来完成最有意思的部分:创建一个使用WebServices的出色程序。目前,Internet上还没有太多的WebServices供我们使用,所以您必须自己实现一些服务。但是,我知道Microsoft提供了一个叫做TerraService的WebServices,它可以将动态地图发送到您的应用程序之中。此外,您开可以在网上找到一个利用VisualStudio.NETBeta1创建的示例程序。

如果您想对新出现的WebServices保持跟踪,请访问MicrosoftUDDI(UniversalDescription,DiscoveryandIntegration)站点。UDDI的目标是创建一个全球化的WebServices存储库,您可以使用它查找所需的功能和服务--甚至是来自某个应用程序的实时服务,包括Microsoft、IBM、Sun、Oracle在内的主要厂商和其它100多家厂商都支持UDDI。

如果您决定在Internet上发布某个Web服务,请及时通知我--我想先试试它们!

未来会怎样

我相信在不远的将来,所有的.NET特性都将在PocketPC上得以实现。随后,对WebServices的支持将集成到操作系统和开发工具之中。调用WebServices将像调用本地组件那样容易,大多数应用程序将通过集成多个服务进行构建。第一次WebServices浪潮预计将出现在公司内部,企业将来自多个系统的服务集成到一个应用程序之中,随后的发展趋势则是通过Internet将来自多个服务提供商的多个服务完全集成在一起。

相关链接

如果您想了解同.NET有关的更多信息,请访问Microsoft.NET页面。

如果您想了解同SOAP有关的更多信息,请访问MSDNSOAP开发资源页面。

如果您想了解同ROPE有关的更多信息,请访问MSDNMagazine文章“WebService开发:立即上手使用SOAPToolkitforVisualStudio”。

如果您想同PC上

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top