在PHP中使用SoapClient()时出错

时间:2012-10-16 06:14:19

标签: soap php

我正在尝试使用PHP的SoapClient()访问WSDL(Web服务定义语言)文件。我发现WSDL文件已经过身份验证。我尝试在我的服务器上通过另一个参数和活动SSL在数组上传递凭据,但我仍然收到错误。

以下是我正在使用的代码:

  

$ client = new   SoapClient的( “https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl” 阵列( “跟踪”   => “1”,“用户名”=> “username”,“Password”=> “密码”));

这是我得到的错误:

  

警告:   SoapClient的:: SoapClient的(https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl)   [soapclient.soapclient]:无法打开流:连接超时   在第80行的PATH_TO_FILE中

     

警告:SoapClient :: SoapClient()[soapclient.soapclient]:I / O警告   :无法加载外部实体   “https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl”   在第80行的PATH_TO_FILE中

     

致命错误:未捕获的SoapFault异常:[WSDL] SOAP-ERROR:解析   WSDL:无法加载   'https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl'   :无法加载外部实体   “https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl”   在PATH_TO_FILE中:80堆栈跟踪:#0   /home2/wingstec/public_html/widget/API/index.php(80):   SoapClient-> SoapClient('https:// webserv ...',数组)#1 {main}抛出   在第80行的PATH_TO_FILE中

似乎错误说文件不存在于我们给出的路径中,但是当我们直接在浏览器上运行该路径时,我们就会获得该文件

任何人都可以帮我弄清楚确切的问题是什么吗?

1 个答案:

答案 0 :(得分:1)

首先确保您有权从您的主机帐户或服务器访问网站 - 首先检查您是否可以访问http网络服务(没有 s )。如果没有,请检查php.ini中allow_url_fopen是否设置为true。

然后,如果您尝试建立https连接,则需要本地证书。 看看你是否可以添加一个并使用

之类的东西来实例化你的Soap对象
new SoapClient($wsdl, array('local_cert' => $pathToLocalCert));