使用VB.NET调用Web服务WSDL

时间:2014-11-19 13:07:05

标签: vb.net web-services

请允许有人帮助我,然后我疯狂地试图解决这个问题。我是一名SQL DBA,自学了一些VB.NET,与我们内部用于数据输入的SQL数据库进行交互等。

我有一个Web服务,我正在尝试构建一个'Loader',因为所提供的基于Java的服务器让我们无法处理多个文件,并且一次只能处理一个文件。

https://openinterchange.openecommerce.co.uk/OpenInterchange/OpenInterchange?wsdl

这是WSDL的URL。我有一些自动化软件有一个内置的WebService / WCF执行器,虽然这很好看,并且它的工作不适用于我的.NET,所以我必须自己手动完成。

基本上我需要使用上面的WSDL中的特定FUNCTION来触发一些XML来返回对我的应用程序的响应。

现在根据自动化程序,它使用'OpenInterchange'类,然后使用OpenInterchange.XStreamMessage(x,x,x,x,1)METHOD返回信息。

我最终得到的是

    Dim MyService As New XstreamUAT.xStreamMessageRequest(brokreftxtbx.Text, bnumtxtbx.Text, lickeytxtbx.Text, "This", 30)

    Dim MyResult As New XstreamUAT.xStreamMessageResponse(MyService.ToString)

    MsgBox(MyResult)

但我什么也没得到,我显然完全忽视了这一点。我无法向您提供登录其WSDL的详细信息,但通过链接我认为有足够的信息可以指出我正确的方向。

更新

我更改了一些代码并添加了:

Public Class Form1
Implements XstreamUAT.OpenInterchange

然后用大量函数更新了VB的底部,但它们都是空的......

Public Function getMessages(request As XstreamUAT.getMessagesRequest) As XstreamUAT.getMessagesResponse Implements XstreamUAT.OpenInterchange.getMessages

End Function

Public Function inStreamMessage(request As XstreamUAT.inStreamMessageRequest) As XstreamUAT.inStreamMessageResponse Implements XstreamUAT.OpenInterchange.inStreamMessage

End Function

Public Function processMessage(request As XstreamUAT.processMessageRequest) As XstreamUAT.processMessageResponse Implements XstreamUAT.OpenInterchange.processMessage

End Function

Public Function returnResponse(request As XstreamUAT.returnResponseRequest) As XstreamUAT.returnResponseResponse Implements XstreamUAT.OpenInterchange.returnResponse

End Function

Public Function xStreamMessage(request As XstreamUAT.xStreamMessageRequest) As XstreamUAT.xStreamMessageResponse Implements XstreamUAT.OpenInterchange.xStreamMessage

End Function

显然这些函数没有返回任何内容,有人可以请求WSDL并告诉我我在哪里出错了,我正在把我的头发拉出来,而且这个特定的WSDL在Web上缺乏信息正在帮我。

我应该能够使用OpenInterchange类中的xStreamMessage方法向服务发送数据,然后从Web服务返回响应,我甚至无法发送消息! :(

干杯。

1 个答案:

答案 0 :(得分:0)

Dim client As New XstreamUAT.OpenInterchangeClient() 
Dim XMLResponseTxt= client.xStreamMessage(brokreftxtbx.Text, bnumtxtbx.Text, lickeytxtbx.Text, "This", 10)

我正在为相关任务声明错误的对象。最后,我使用以下代码扩展了它:

        'Specify the binding to be used for the client.
        Dim binding As New BasicHttpBinding(BasicHttpSecurityMode.Transport)

        'Specify the address to be used for the client.
        Dim address As New EndpointAddress(hubURLtxtbx.Text)

        ' Create a client that is configured with this address and binding.
        Dim client As New XstreamLIVE.OpenInterchangeClient(binding, address)

        GlobalVariables.response = client.xStreamMessage(brokreftxtbx.Text, bnumtxtbx.Text, lickeytxtbx.Text, "This", 10)
        XMLResponseTxtBx.Text = PrettyXML(GlobalVariables.response)