【发布时间】:2016-06-29 11:51:39
【问题描述】:
使用代理选项初始化 SoapClient 类时,可以通过代理正确访问 WSDL 及其方法:
$client = new SoapClient(
WSDL_URL,
array(
'proxy_host' => PROXY_HOST,
'proxy_port' => PROXY_PORT
)
);
但是没有通过指定的代理访问架构 (schemaLocation):
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified">
<xs:import namespace="http://example.com/webservice/cisbase" schemaLocation="http://example.com/ws/cis_base.xsd"/>
<xs:import namespace="http://de.ws.example" schemaLocation="http://example.com/ws/is_base_de.xsd"/>
</xs:schema>
这导致:
SOAP-ERROR: Parsing Schema: can't import schema from ...
所以基本上 SoapClient 正在尝试访问 cis_base.xsd 和 is_base_de.xsd 而没有代理失败。
PHP SoapClient 出现这种行为是否有原因?是否有解决方法?
【问题讨论】:
标签: php soap proxy xsd soap-client