php - SOAP PHP 中的属性
问题描述
我试图在PHP SOAP中重现 XML,当我尝试设置属性时我被卡住了。
例子 :
- 我想重现什么
我的代码如何:
$headerToken = new \SoapHeader($asxm,'fueloauth',$auth['accessToken']);
$headerContentType = new \SoapHeader($asxm,'Content-Type','text/xml');
$headerSAOPAction = new \SoapHeader($asxm,'SOAPAction','Retrieve');
$soapClient = new \SoapClient( $wsdl, array( 'trace' => true, 'location' => $asxm, 'soapaction' => 'retrieve', 'exceptions ' => true, ) ); $soapClient->__setSoapHeaders(array($headerToken,$headerContentType,$headerSAOPAction)); $RetrieveRequest = new \stdClass(); $properties = array(); $properties[] = new SoapVar('email', XSD_STRING); $properties[] = new SoapVar('lastclick', XSD_STRING); $filterClass = new \stdClass(); $filterClass->Property = 'created_at'; $filterClass->SimpleOperator = 'greaterThanOrEqual'; $filterClass->Value = '08/28/2018 00:00:00 AM '; $params = array(); $params['ObjectType'] = new SoapVar('DataExtensionObject[foo]', XSD_STRING, null, null, 'ObjectType' ); $params['Properties'] = $properties; $params['Filter'] = new SoapVar($filterClass, SOAP_ENC_OBJECT); $RetrieveRequest->RetrieveRequest = $params;
如您所见,它错过了 filter 上的属性:
<Filter xsi:type="SimpleFilterPart">
有人知道我如何在 PHP SOAP 中做到这一点吗?
我已经尝试过类似的方法,但它不起作用..
array("foo" => array("_" => "cheese", "bar"=>"moo"));
谢谢 !
解决方案
构建请求的最简单方法是不知道如何构建,那么您应该使用 WSDL 到 PHP 生成器,例如PackageGenerator项目。使用它将为您生成需要发送的每个参数的关联类,包括标题。处理响应也会变得更容易。
推荐阅读
- html - 如何在html中将屏幕高度设置为设备高度?
- spring-data - Hazelcast Repository 仍然查询数据库
- hashicorp-vault - Vault 是否支持两个 CA 中间人签署两个不同的环境证书?
- c - 从 C 中的管道读取
- powershell - 用于修改现有 CSV 中的行的 PowerShell 脚本
- json - IBM Watson Tone Analyzer 无效 JSON 错误
- python - 错误:异常:回溯(最近一次调用最后一次)Tensorflow
- javascript - Navigator.getLocation.getCurrentPosition 不适用于 Android 手机
- node.js - 电报机器人 | 检测用户是从手机还是桌面发送消息
- python - 为什么我的代码会抛出一个非常奇怪的错误代码?