php soap連接https的wsdl報錯SOAP-ERROR: Parsing WSDL:Couldn't load from


轉發:https://blog.csdn.net/keyunq/article/details/51804728

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
  ));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

禁止引用外部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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

你可以看到上面是proxy_和fastcgi_兩種配置,就是說如果你的nginx后面是proxy,就設置proxy相關的配置,如果是fastcgi就設置fastcgi相關的配置。

php soap連接https的wsdl報錯SOAP-ERROR: Parsing WSDL:Couldn't load from


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM