PHP中SoapClient通过HTTP代理连接生产环境API失败求助
PHP中SoapClient通过HTTP代理连接生产环境API失败求助
大家好,我现在碰到一个棘手的问题:本地开发环境里用PHP的SoapClient调用API完全正常,但部署到生产服务器后,始终抛出**"Could not connect to host"**的SoapFault错误。
我猜测问题出在服务器的代理配置上,因为用CURL携带代理参数请求同一个API地址是能成功的,CURL的测试代码如下:
$param_curl = array( CURLOPT_URL => "https://the.api.com/path", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPPROXYTUNNEL => true, CURLOPT_PROXY => "http://my.proxy.com:123" ); curl_setopt_array($curl, $param_curl); curl_exec($curl);
但换成SoapClient的写法(本地环境完全跑通),到生产服务器就触发连接错误,代码如下:
$client = new SoapClient("wsdl.xml", [ 'trace' => 1, 'cache_wsdl' => WSDL_CACHE_NONE, 'proxy_host' => "http://my.proxy.com", 'proxy_port' => "123" ]); $result = $client->create($params);
我知道可以把SOAP报文直接塞到CURL里发送,但这样一来,用SoapClient封装SOAP协议的意义就完全丧失了。
有没有大佬能帮我排查下是不是哪里配置遗漏了?非常感谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

