开发者社区> 高久峰> 正文

PHP的SoapClient选择服务端口

简介: PHP的SoapClient选择服务端口
+关注继续查看
福利推荐:阿里云、腾讯云、华为云等大品牌云产品全线2折优惠活动来袭,4核8G云服务器899元/3年,新老用户共享优惠,点击这里立即抢购>>>

我目前正在与SOAP服务集成,该服务定义了两个不同的服务。

WSDL的相关部分是:

<wsdl:service?name="Config">

????<wsdl:port?name="BasicHttpBinding_IConfiguration"?binding="tns:BasicHttpBinding_IConfiguration">

????????<soap:address?location="http://nonsecure.example.com/Configuration.svc"/>

????</wsdl:port>

????<wsdl:port?name="BasicHttpsBinding_IConfiguration"?binding="tns:BasicHttpsBinding_IConfiguration">

????????<soap:address?location="https://secure.example.com/Configuration.svc"/>

????</wsdl:port>

</wsdl:service>

通过研究,我发现可以使用__setLocation()方法来控制

$client->__setLocation('https://secure.example.com/Configuration.svc');

但是,我不应该直接写死它,应该根据端口优先选择https

于是封装一个方法来优先获取https端口

function?getLocationForPort($wsdl,?$portName)

{

????$file?=?file_get_contents($wsdl);

????$xml?=?new?SimpleXmlElement($file);

????$query?=?"wsdl:service/wsdl:port[@name='$portName']/soap:address";

????$address?=?$xml->xpath($query);

????if?(!empty($address))

????{

????????$location?=?(string)$address[0]['location'];

????????return?$location;

????}

????return?false;

}

用法很简单:

$client?=?new?SoapClient($wsdl);

$sslLocation?=?getLocationForPort($wsdl,?'BasicHttpsBinding_IConfiguration');

if?($sslLocation)

{

????$client->__setLocation($location);

}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PHP+Apache如何监控多个端口和配置多站点
PHP+Apache如何监控多个端口和配置多站点
54 0
【黄啊码】为什么我建议您选择go,而不选择php?
很多开发者都认为php已经是“强弩之末”,是时候转go了,但在此之前,我们先好好了解一下这两者的差别到底在哪,如果连区别都不知道?那还谈什么转语言
83 0
开发商城系统是选择PHP还是Java?
在互联网快速发展的今天,越来越多的企业通过开发商城系统来拓展自己的业务,目前商城系统开发的主流语言有两个:PHP语言和JAVA语言,很多企业也会纠结用哪种语言开发的商城更好。
113 0
绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?(2)
绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?
110 0
绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?(1)
绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?
77 0
直播后台开发,php直播源码这样选择才不会出错
直播软件根据应用的不同,开发语言也有所不同,安卓系统使用java语言开发;苹果系统使用OC语言;直播管理后台使用的是php语言
352 0
Node.js Vs. PHP:你应该选择哪一个
现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 JavaScript 编写后端代码。
1894 0
PHP IDE选择标准
2017年11月17日09:35:01 这里记录一下PHP IDE的选择标准 1.? 是否有错误提示, 对于一些 `缺少分号`, `花括号不配对`, `变量未定义就使用`等待的提示是要有的 2. 代码自动补全, 这个功能没准就可以提示出一些你之前不知道的功能 3.
1202 0
+关注
高久峰
开源中国GVP
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载


http://www.vxiaotou.com