PHP SOAP客户端访问非标准端口上的服务器
问题描述:
我试图发送请求的服务可以通过非标准端口访问 - 所以不能访问端口80.它可以通过端口80本地访问。所以我测试了该应用程序本地和它工作正常。但是,当我将其部署到生产服务器(而不是局域网)时,它会失败。PHP SOAP客户端访问非标准端口上的服务器
再次为清楚:
-dev服务器是LAN
-SOAP服务器上是LAN
-production服务器是在WAN
-SOAP服务器可通过非标准http端口(不是80)通过NAT/FW访问
soap客户端使用指定的WSDL URI创建。例如:
$this->client = new Zend_Soap_Client('http://server.com:10080/path/service.asmx?WSDL');
但是查询到不行:
$this->client->function($query);
我得到一个:
Internal Server Error
抛出异常。
PHP在这方面打破了吗?有没有解决方法?
答
我找到了一个解决办法:
$this->client = new Zend_Soap_Client('http://server.com:10080/path/service.asmx?WSDL',array('proxy_host' => 'server.com', 'proxy_port' => 10080));
我假装有一个代理。我指定代理端口作为服务器的端口。这工作。但是,我仍然想知道我是否犯了错误,或者如果这是ZF或PHP中的错误。我现在用ZF提交了一个bug报告:
没什么新鲜的。 – 2010-11-23 04:27:33