我需要您的帮助,以找到在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参数?
是否有最佳实践来实现这一目标?
谢谢。
答案 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功能上有很多资源可以实现此目的。希望这可以帮助交配。