轉自 https://blog.csdn.net/xinyflove/article/details/51152563

--

當使用soap

 

$url = "http://********?wsdl";
$objSoapClient = new SoapClient($url);
  • 1
  • 2

 

創建一個對象的時候,有時候會出現

 

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://********?wsdl' : failed to load external entity "http://********?wsdl"
  • 1

 

可能是因為接口不穩定。
解決方案,建議使用try

 

$url = "http://********?wsdl";
try{
    $objSoapClient = new SoapClient($url);
} catch (Exception $e) {
    print $e->getMessage();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

 

這樣就不會在生產代碼運行時,接口不穩定,造成報錯。

後期使用發現不是接口的問題,可能是php soap的問題。具體是為什麼我也不清楚,經過查找資料。使用nusoap會比較好點,至少沒發生這個問題。
nusoap下載地址
我的資源nusoap0.9.5

 

<?php
require_once("nusoap.php");

$url = "http://*****?WSDL";
$client = new nusoap_client($url, "wsdl");
// 避免乱码
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'UTF-8';

// 然后通过调用对方提供的方法
$client->call('function_name', $param);


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

 

這樣應該就可以解決這個問題了。

--

arrow
arrow
    全站熱搜

    dizzy03 發表在 痞客邦 留言(0) 人氣()