PHP WSDL SOAP无法导入架构
我试图使用外部web服务,但出现错误Parsing Schema: can't import schema from webservice_url
。该服务使用HTTP基本身份验证并使用SSL。我可以通过Web浏览器登录并查看它生成的xml,但由于它不是我生成xml的代码,因此我无法更改生成的内容。我有以下代码。PHP WSDL SOAP无法导入架构
$config = array('login' => $user_id, 'password' => $password);
$client = new SoapClient($url, $config);
那么经过研究和在线阅读大量文章后,似乎这是php-soap的限制,并且有些建议指向使用curl来完成。我实际上决定完全避免使用PHP,因为我刚刚学习Ruby并且已经离开PHP。我通过使用Savon
gem完成了我的上述任务,该gem在认证和设置cookie方面有一些非常好的文档。它使用这个宝石很好用。
我发现这对SoapClient的手册页的comment section:
<?php
$login = 'someone';
$password = 'secret';
$client = new SoapClient(
'https://' . urlencode($login) . ':' . urlencode($password) . '@www.server.com/path/to/wsdl',
array(
'login' => $login,
'password' => $password
)
);
?>
好像基本验证端点调用,而不是WSDL检索。
嗯。我试过了。指出它的WSDL给出了与我的问题相同的错误,并将其指向模式给出了'SOAP-ERROR:解析WSDL:找不到
糟糕!在开始处有'http://'而不是'https://'。编辑答案来解决。当你尝试时你有改变吗? – davidfmatheson 2012-08-03 17:01:35
是的,我做到了。我也把港口放在地址的后面。我尝试设置'proxy_host'到模式url,但是请求所有回来'NULL' – 2012-08-03 21:17:51
您确定该URL正在生成XML吗? – Matt 2012-08-03 15:31:25
你可以发布你通过浏览器看到的XML吗? $ url的价值是什么? – davidfmatheson 2012-08-03 15:35:48
添加了url和xml – 2012-08-03 15:43:32