在 laravel soap 中偶尔给我错误的版本错误?
in laravel soap give me wrong version error once in a while?
我尝试使用 soap 并连接到 wsdl 文件。
我不知道为什么 10 个请求中有 2 个发送但其他请求给我错误的版本错误。我通过
在 call soap 中定义了版本
'soap_version'=> SOAP_1_1,
wsdl 以此开头:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
错误显示如下:
"message": "Wrong Version",
"status_code": 500,
终于找到原因了
在我的代码中,我使用了这样的旧版本:
$result = $this->serve()->__soapCall($functionName, $arguments);
protected function serve()
{
if (is_null($this->client))
{
$this->client = new SoapClient($this->wsdl, $this->options);
}
return $this->client;
}
然后当我改成这个时,解决那个问题:
$sms_client = new SoapClient($this->wsdl, array('encoding'=>'UTF-8'));
$result = $sms_client->$functionName($arguments);
我尝试使用 soap 并连接到 wsdl 文件。 我不知道为什么 10 个请求中有 2 个发送但其他请求给我错误的版本错误。我通过
在 call soap 中定义了版本'soap_version'=> SOAP_1_1,
wsdl 以此开头:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
错误显示如下:
"message": "Wrong Version",
"status_code": 500,
终于找到原因了
在我的代码中,我使用了这样的旧版本:
$result = $this->serve()->__soapCall($functionName, $arguments);
protected function serve()
{
if (is_null($this->client))
{
$this->client = new SoapClient($this->wsdl, $this->options);
}
return $this->client;
}
然后当我改成这个时,解决那个问题:
$sms_client = new SoapClient($this->wsdl, array('encoding'=>'UTF-8'));
$result = $sms_client->$functionName($arguments);