问题描述
这是我的代码:
$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”
@H_502_11@[更新]
$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函数。