[英]SOAPClient Error: Could not connect to host on PHP 7.0 and Laravel
我在使用PHP 7.0的服務器上的Laravel應用程序上通過SOAPClient連接到WSDL時遇到問題。 我已經使用PHP 5.6在本地服務器上測試了以下代碼,並且可以正常工作。 兩者都運行Linux。 我的本地服務器正在運行Kubuntu,另一台服務器正在運行CentOS 7。
var $client;
function __construct(){
ini_set('soap.wsdl_cache_enabled',WSDL_CACHE_NONE);
ini_set('soap.wsdl_cache_ttl', 0);
$this->client = new SoapClient(env('WSDL_SOLMAN02_TEST'),
['login'=>env('SOLMAN_US_TEST'),
'password'=>env('SOLMAN_PSSWD_TEST'),
'cache_wsdl' => WSDL_CACHE_NONE,
'soap_version' => SOAP_1_1,
'ssl_method' => 'SOAP_SSL_METHOD_SSLv3',
'trace' => true,
'exception' => false,
'stream_context'=> stream_context_create(array(
'ssl'=> array(
'verify_peer'=>false,
'verify_peer_name'=>false
)
))
]
);
}
public function updateTicket(Ticket $ticket){
$incident = $this->createTicketObject($ticket);
$params = get_object_vars($incident);
return $this->client->wsdlFunc($params);
}
有趣的是,當我打印dd($this->client->__getFunctions());
WSDL會以您可以調用的所有函數的數組作為響應,但是當我實際調用任何函數時,都會顯示錯誤。
我已經嘗試了幾乎所有內容,從更改連接中的每個參數到更改php.ini,但沒有任何效果。 我已將服務器降級到PHP 5.6,但仍然無法正常工作。
我還對SOAPUI上的WSDL進行了測試,並且可以正常工作。
我發現這兩種環境之間的唯一區別是,裝有PHP 7.0的服務器具有https。
我的代碼很好,我只需要將WSDL ip地址添加到/ etc / hosts。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.