如果返回的数据是自定义格式(我从问题中猜测),那么默认的 Web 服务内容可能无法在 .Net 中工作,您必须手动从请求中获取数据并根据它进行解析服务返回什么。如果它在标准 XML 中,您可能必须获取一次原始数据才能自己创建 WSDL。
这是我们用来测试我们的 .Net Web 服务之一的控制台应用程序的一些代码。基本上它发出请求并返回原始数据。您可以运行一次以获取返回的数据,然后编写代码来解析数据。我用您问题中的价值观替换了我们的价值观。
Module Module1
Sub Main()
Dim x = System.Net.HttpWebRequest.Create("http://ipaddress/onyx/api/soap_api.php")
x.Method = "POST"
Dim MemStream As New System.IO.MemoryStream
Dim ReqData As New IO.StreamWriter(MemStream, System.Text.Encoding.UTF8)
ReqData.Write(My.Resources.Test2)
ReqData.Flush()
x.ContentLength = MemStream.Length
x.ContentType = "text/xml; charset=utf-8"
x.Headers.Add("SOAPAction", "not-used")
Dim WebReq = x.GetRequestStream
WebReq.Write(MemStream.GetBuffer, 0, MemStream.Length)
WebReq.Flush()
WebReq.Close()
Dim Res As System.Net.HttpWebResponse = x.GetResponse
If Res.StatusCode = Net.HttpStatusCode.OK Then
Dim SR = New IO.StreamReader(Res.GetResponseStream)
Console.WriteLine(SR.ReadToEnd)
Else
Console.WriteLine(Res.StatusCode & ", " & Res.StatusDescription)
End If
Console.ReadLine()
End Sub
End Module
`My.Resources.Test2' 是我们使用的预先格式化的请求数据。这是您的情况的一个可能示例,它可能不正确。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<qty_available>
124044
</qty_available>
</soap:Body>
</soap:Envelope>