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

时间:2018-07-19 04:30:10

标签: c# soap

我需要您的帮助,以找到在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>

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

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

如何实现此请求?

如何添加公司,密码和用户名以及enquiryInputCollection参数?

是否有最佳实践来实现这一目标?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您已经成功地从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功能上有很多资源可以实现此目的。希望这可以帮助交配。