当我尝试使用该应用程序时,我正在开发一个 c# 桌面应用程序并使用在 php 应用程序中开发的 webservies。我只是添加该 Web 服务的 Web 引用并尝试通过以下代码进行访问
WebReference.TestWSDL pdl = new testingApp.WebReference.TestWSDL();
string copy = pdl.verify("testing");
当我尝试调用验证方法时它抛出错误。错误是
可能的 SOAP 版本不匹配:信封命名空间 http://schemas.xmlsoap.org/wsdl/出乎意料。期待http://schemas.xmlsoap.org/soap/envelope/ .
网络服务链接就像
最佳答案
您遇到的错误通知您,当您调用网络服务时,您将获得该服务的 WSDL(网络服务定义语言)——这是描述服务功能的元数据,但实际上不能用于调用服务。通常,您可以通过将“?wsdl”或“wsdl”附加到服务 URI 来访问 WSDL。
您尝试使用的网络服务有两个元素。
实际服务存在于:
http://171.139.101.12/code/index.php/webservice
描述它的元数据(Visual Studio 通过 wsdl.exe 用来生成代理)位于此处:
http://171.139.101.12/code/index.php/webservice/wsdl
您需要编辑 Web Reference 的属性并适当更新地址。或者,您可以更改 pdl 变量的属性,并更改代码中的端点。
关于c# - 关于在 c# 桌面应用程序中使用 php web 服务的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2062722/