0

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

这是我正在使用的代码:

$client = new SoapClient("https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl",array("trace" => "1","Username" => "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 警告:无法在第 80 行的 PATH_TO_FILE 中加载外部实体“https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl”

致命错误:未捕获的 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...', Array) #1 {main} 在第 80 行的 PATH_TO_FILE 中抛出

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

谁能帮我弄清楚到底是什么问题?

4

1 回答 1

1

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

然后,如果您尝试建立 https 连接,则需要本地证书。看看你是否可以添加一个并使用类似的东西实例化你的 Soap 对象

new SoapClient($wsdl, array('local_cert' => $pathToLocalCert));
于 2012-10-16T09:45:04.557 回答