在PHP SOAP中将空字符串传递给WSDL
您好,我正在编写一个PHP函数来与外部WSDL服务通信,目前遇到了一个问题。有些dateTime元素需要有效的日期/时间,或者需要传递一个空变量给它们。例如:在PHP SOAP中将空字符串传递给WSDL,php,web-services,soap,wsdl,Php,Web Services,Soap,Wsdl,您好,我正在编写一个PHP函数来与外部WSDL服务通信,目前遇到了一个问题。有些dateTime元素需要有效的日期/时间,或者需要传递一个空变量给它们。例如: <s:element minOccurs="1" maxOccurs="1" name="dAppointment" type="s:dateTime"/> 当提交有效日期时,该函数工作正常,但当尝试通过以下错误传递空变量时,返回错误: 字符串“”不是有效的AllXsd值 表示该值正在沿途转换为空字符串。变量是否需要像使用S
<s:element minOccurs="1" maxOccurs="1" name="dAppointment" type="s:dateTime"/>
当提交有效日期时,该函数工作正常,但当尝试通过以下错误传递空变量时,返回错误:
字符串“”不是有效的AllXsd值
表示该值正在沿途转换为空字符串。变量是否需要像使用SoapVar那样以不同的方式设置为NULL,或者这可能是WSDL端的一个问题
感谢您的帮助。因此,所有遇到此问题的人,解决方案:
- 打开您的
文件local.wsdl
- 找到你的领域:
- 将其更改为:
- 现在,当您将变量设置为
时,它将是NULL
NULL
$client = new SoapClient($this->SOAPURL, array("connection_timeout" => 20));
$params = new stdClass();
$params->dAppointment = NULL;
settype($params->dAppointment, "null"); // Trying to confirm
$client->AddJob($params)->AddJobResult;