微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用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" ... ));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐