我有一个WCF网络服务,我可以通过basicHttp连接到它,但不是wsHttp。我尝试通过以下内容通过wshttp连接到它:
$service = new SoapClient
("http://service.companyname.local:6666/Service/?wsdl",
array(
"location" => "http://service.companyname.local:6666/Service/WCF",
"trace" => true,
'soap_version' => SOAP_1_2
)
);
对SoapClient构造函数的调用返回正常。当我尝试使用$ client-> FunctionName调用一个时,页面只是在那里加载了很长一段时间,并最终返回错误“Error Fetching http headers”。究竟是什么意思,我该如何解决? (从.Net客户端使用该服务非常有效。)
答案 0 :(得分:6)
wsHttpBinding上的default config使用了vanilla PHP SoapClient无法理解的高级WS-Security和WS-Addressing功能。还有其他PHP可访问的SOAP客户端可能能够工作(例如Apache Axis2 + Rampart / C),或者您可以尝试关闭一些不兼容的wsHttpBinding功能(消息安全性可能是第一个)。并不是说它不起作用,但你可能需要一些反复试验才能使它正常工作。
答案 1 :(得分:0)
我最后一次检查时,php不支持wsHttpBinding