php soap连接https的wsdl报错SOAP-ERROR: Parsing WSDL:Couldn't load from

来源:互联网 发布:月薪5万的程序员 编辑:程序博客网 时间:2024/05/17 22:34

SOAP-ERROR: Parsing WSDL:Couldn’t load from “xxxxxxx” 解决方案

用php的soapclient连接第三方的webservice,是https的,连接报错SOAP-ERROR: Parsing WSDL:Couldn’t load from “xxxxxxx”

首先排查 php的soap扩展是否安装
openssl扩展
服务器本身安装openssl

排除第三方对本服务器的IP限制

最后怀疑是https需要ssl验证,而本机没有pem文件

可以通过如下设置,忽略ssl验证

verify_peer:指定是否验证ssl,默认为true
将verify_peer设为false

另外,允许引用外部xml实体
加libxml_disable_entity_loader(false);语句

libxml_disable_entity_loader(false);$opts = array(    'ssl'   => array(            'verify_peer'          => false        ),    'https' => array(            'curl_verify_ssl_peer'  => false,            'curl_verify_ssl_host'  => false     ));$streamContext = stream_context_create($opts);$client = new SoapClient("https://urlToSoapWs",  array(      'stream_context'    => $streamContext  ));

禁止引用外部xml实体
libxml_disable_entity_loader(true);

nginx 报错 upstream timed out (110: Connection timed out)解决方案

nginx每隔几个小时就会报下面的错误:

2013/05/18 21:21:36 [error] 11618#0: *324911 upstream timed out (110: Connection timed out) while reading response header from upstream,
client: 42.62.37.56, server: localhost, request: “GET /code-snippet/2747/HTML5-Canvas-usage HTTP/1.0”,
upstream: “fastcgi://127.0.0.1:9002”, host: “outofmemory.cn”, referrer: “http://outofmemory.cn/code-snippet/tagged/canvas“报这个错误之后,整个服务器就不响应了,但是nginx后面的webpy程序没有任何错误,后端的数据库也很正常,从网上查了很多资料,都是说要修改proxy_read_timeout,proxy_send_timeout和proxy_buffer几个相关设置的值。

如下配置,要放在server配置节之内

large_client_header_buffers 4 16k;client_max_body_size 30m;client_body_buffer_size 128k;proxy_connect_timeout 300;proxy_read_timeout 300;proxy_send_timeout 300;proxy_buffer_size 64k;proxy_buffers   4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;fastcgi_connect_timeout 300;fastcgi_read_timeout 300;fastcgi_send_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers   4 32k;fastcgi_busy_buffers_size 64k;fastcgi_temp_file_write_size 64k;

你可以看到上面是proxy_和fastcgi_两种配置,就是说如果你的nginx后面是proxy,就设置proxy相关的配置,如果是fastcgi就设置fastcgi相关的配置。

0 0
原创粉丝点击