2011-02-11 82 views
3

Web服务新手...请耐心等待。我导入了一个WSDL,现在呢?

我被给了一个WSDL文件导入到我的vb .NET项目。我知道这是一个合同,它应该告诉我如何使用相关的Web服务。这就是我的问题出现的地方。我在导入的服务参考中看到各种类,属性,接口等。没有告诉我“如果你有X,Y和Z作为输入,调用这个函数返回W”。

冒着过于模糊的风险,我应该寻找什么,告诉我应该如何使用它?我如何知道要调用哪些函数以及从哪些类调用它们?我应该期望一些随WSDL一起提供的文档,或者WSDL应该足以让我看到它并说“啊,这就是它的用法!”。

我已经通过Web上的各种WSDL教程阅读,他们给了我一个基本的理解(我认为......?)。我错过了某个地方,但我真的知道在哪里。

感谢您的协助。

回答

1

WSDL会告诉您或者最好是一个SOAP库如何与SOAP服务器进行通信。 SOAP服务可以成为几乎任何事物的数据获取接口。

但是,如果函数名称和参数没有很好地命名,可能会非常模糊地发送到SOAP服务的数据以及响应的内容。

大部分时间应该记录。您应该获得这些文档或了解服务提供商实际执行的服务。 WSDL并不是真正意义上的人类消费。但是,如果您正在编写自己的XML,那么是的,您需要注意WSDL。如果一个库为您创建XML,它通常与WSDL一起工作,以了解如何构造XML并读取响应。

+0

谢谢,WSDL导入中包含许多类,函数等等,我不确定哪些是需要的并且无法说明从Web上的各种教程中,如果我只能从创建的类或WSDL本身讲述这些内容,或者应该提供文档,那么这就是我需要的答案。 – 2011-02-11 16:16:30

+0

很高兴你知道了!我对文档不匹配WSDL有过悲惨的经历。服务提供商不断更新服务,但未能更新文档。 – 2011-02-13 02:05:37

2

已经生成的类很容易使用。

基本上你会有一个客户端类,并在该类中为WSDL中声明的每个端点/操作提供一个方法。
另外,在XSD部分(操作输入arg对象和输出结果对象)中定义的每个复杂类型都应该有一个类。

然后,您可以以类似于以下(简化)示例的方式调用您的WS。

Try 
    Dim service As New MyServiceRef.MyServiceClient() 
    service.Open() 

    Dim output As MyServiceRef.myCallResponse 
    Dim args As New MyServiceRef.myCallRequest 

    args.arg1 = 1 
    args.arg2 = "A" 

    output = service.myCallRequest(args) 
    ... 
Catch ex As Exception 
    treat (ex) 
End Try 
-1

当您添加Web服务的引用时,它会创建一个代理,以便您调用服务器上的Web方法。 Here是一个在VB.NET中使用Web服务的简单教程

相关问题