我正在尝试使用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中
似乎错误说文件不存在于我们给出的路径中,但是当我们直接在浏览器上运行该路径时,我们就会获得该文件
任何人都可以帮我弄清楚确切的问题是什么吗?
答案 0 :(得分:1)
首先确保您有权从您的主机帐户或服务器访问网站 - 首先检查您是否可以访问http网络服务(没有 s )。如果没有,请检查php.ini中allow_url_fopen是否设置为true。
然后,如果您尝试建立https连接,则需要本地证书。 看看你是否可以添加一个并使用
之类的东西来实例化你的Soap对象new SoapClient($wsdl, array('local_cert' => $pathToLocalCert));