使用PHP调用具有多个绑定的WCF Web服务

前端之家收集整理的这篇文章主要介绍了使用PHP调用具有多个绑定的WCF Web服务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个WCF Web服务,允许基本HTTP和WS-HTTP客户端,都通过HTTPS使用用户名和&密码验证.这是通过在同一服务上使用两个绑定来实现的.

因此,服务位于https://foo.com/Service.svc,基本HTTP(SOAP 1.1)端点为https://foo.com/Service.svc/Unp11,WS-HTTP(SOAP 1.2)端点为https://foo.com/Service.svc/Unp.

客户端正在尝试使用其内置的SOAP支持通过PHP 5访问此Web服务,并且无法连接到该服务.他不断收到HTTP 400(错误请求)响应,如果SOAP消息格式错误,或者SOAP 1.1消息被发送到SOAP 1.2端点(反之亦然),则会发生这种情况.

我只懂基本的PHP,所以我很难帮助他.我知道你可以通过这样做来创建一个客户端

$client = new SoapClient('https://foo.com/Service.svc?wsdl');

但是如何指定绑定/端点?使用PHP实现这一切是否存在任何已知问题?

UPDATE

好的,我可以使用PHP连接到WCF服务ok(在SoapClient构造函数中指定SOAP版本),并调用$client-> __ getFunctions()返回所有Web服务操作的正确列表.

当我尝试使用$client-> __ soapCall调用一个时,页面只是在那里加载了很长一段时间,并最终返回错误“Error Fetching http headers”.究竟是什么意思,我该如何解决? (从.Net客户端使用该服务非常有效.)

刚刚遇到这个问题,为PHP调用者创建了一个带有多个绑定的WCF.设置位置似乎允许PHP的SoapClient的WSDL版本并指定要使用的绑定.

WCF配置是(1个服务,带有2个绑定wsHttp和basicHttp),非常简单.

PHP代码

$client = new SoapClient("http://example.com/service.svc?wsdl");
$client->__setLocation("http://example.com/service.svc/basic");
$response = $client->MethodName(array( "paramName" => "paramValue" ... ));
原文链接:https://www.f2er.com/php/136531.html

猜你在找的PHP相关文章