我是使用Web服务的新手,我一直在努力解决以下问题。
我从外部提供商那里获得了一个WSDL,用于使用他们的web服务。我正在使用VB.NET,并已将web引用添加到项目中。有了这个,我现在可以访问提供WSDL中的方法和结构的代理类。问题是webservice需要一个头,但它没有在WSDL中声明,因此我无法访问所需头的任何属性。
我已经阅读了很多,看来我必须手动添加标题数据,但我不知道如何使用代理对象。
标题需要以下数据
POST https://ipGoesHere:7070/ HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "urn:TimbradoCFD"
CUSTOMERKEY: 00000000000000
User-Agent: Jakarta Commons-HttpClient/3.1
Host: ipGoesHere:7070
Content-Length: 22165
所需的SOAP信封必须如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:new="http://new.webservice.namespace">
<soapenv:Header/>
<soapenv:Body>
<cfdi:Document xmlns:cfdi="http://something" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<cfdi:Concepts>
<cfdi:Concept quantity="1" Identifier="001" description="article"/>
</cfdi:Concepts>
</cfdi:Document>
</soapenv:Body>
</soapenv:Envelope>
我不知道我是否正确地解决了这个问题,或者有人知道如何将这个标头与代理对象结合使用。