使用代理对象将HTTP标头添加到Web服务调用

时间:2014-03-07 22:18:52

标签: vb.net wcf soap wsdl wcf-client

我是使用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>

我不知道我是否正确地解决了这个问题,或者有人知道如何将这个标头与代理对象结合使用。

0 个答案:

没有答案