代码之家  ›  专栏  ›  技术社区  ›  user123456

如何在C中使用SOAP Web服务并在请求中传递XML?

  •  0
  • user123456  · 技术社区  · 8 年前

    我需要你的帮助来找到用C语言调用SOAP Web服务的最佳方法。

    我知道使用C中的Web服务引用功能是一个很好的功能。

    我试过用,但没用?

    这是我要发布的XML

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://temenos.com/CUSTDETS">
           <soapenv:Header/>
           <soapenv:Body>
              <cus:EDBCUSTDETS>
                 <WebRequestCommon>
                    <!--Optional:-->
                    <company></company>
                    <password></password>
                    <userName></userName>
                 </WebRequestCommon>
                 <EDBCUSTDETSType>
                    <!--Zero or more repetitions:-->
                    <enquiryInputCollection>
                       <columnName></columnName>
                       <criteriaValue></criteriaValue>
                       <operand>EQ</operand>
                    </enquiryInputCollection>
                 </EDBCUSTDETSType>
              </cus:EDBCUSTDETS>
           </soapenv:Body>
        </soapenv:Envelope>
    

    在ServiceReferences文件夹中添加了对WSDL的引用之后,我将其命名为ServiceReference1。

    现在我可以在代码中看到:

    如何实现这个要求?

    如何增加公司、密码、用户名和查询输入采集参数?

    有没有实现这一目标的最佳实践?

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  1
  •   KrishnaDhungana    8 年前

    如果您已经成功地从WSDL生成了类化的代理,那么您应该可以开始了。我认为应该向您提供使用它们的Web服务文档。

    寻找 service client classes 首先。

    如:

    var client = new ServiceReference1Client();
    client. ? //(should list Methods and you can find Types of Paramaters to build them.)
    

    如果您签入web.config/app.config,并且看到和 <client> 和 <endpoint /> ,这是您提供端点地址的地方。如果您需要发送客户端证书,您可能希望从或开始并设置安全性,例如:

     <security mode="Transport">
        <transport clientCredentialType="Certificate" />
     </security>
    

    有很多关于WCF功能的资源可以实现这一点。希望这对伴侣有帮助。