PHP-SOAP“解析WSDL:无法从...加载”错误

问题描述

这是我的代码:

$this->options = [
    "login" => $username,"password" => $password
];
try {
    $this->request = new SoapClient('https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl',$this->options);
} catch(Exception $e) {
    throw new Exception($e->getMessage());
}

这是错误消息:

严重错误:未捕获的异常:SOAP错误:解析WSDL:无法从“ https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl”加载:加载失败外部实体“ https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl”

您知道如何解决此错误吗?

[更新]

我可以使用以下代码获得函数:

$wsdl = file_get_contents('https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl');

但是此代码仍然会出错:

SoapClient('https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl',$this->options);

解决方法

从命令行尝试:

wget https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl

php -r '$a = new SoapClient("https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl"); var_dump($a);'

旅游主持人可能无法获得资源ID

,

要处理SOAP异常,可以尝试一下answer。以下代码是返回SOAP响应的独立代码。

 $params = array(
    "login" => "USERNAME","password" => "PASSWORD"
);
try {
    $client = new SoapClient('https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetdsesya?wsdl',array($params));
} catch(Exception $e) {
    throw new Exception($e->getMessage());
}

列出所有可用的SOAP函数:

echo " List of available SOAP functions <br/><pre>"; var_dump($client->__getFunctions()); echo "</pre>";

列出所有可用的SOAP类型:

echo "List of SOAP types <br/><pre>"; var_dump($client->__getTypes()); echo "</pre>";

answer解释了如何访问任何可用的SOAP函数。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...