我正在使用Web服务以XML格式获取用户数据,然后将其重新发送到具有更改的第二个Web服务。问题是我每次发送请求时最终都会创建一个没有数据的新用户。这意味着前3个元素被接受但User对象未被接受。我试图使用xml和aarray作为输入,但没有任何作用。 SaveUser服务需要一个复杂的对象,其WSDL要求类似于
<s:element name="SaveUser">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="CompanyID" type="s:long"/>
<s:element minOccurs="0" maxOccurs="1" name="User" type="tns:User"/>
</s:sequence>
</s:complexType>
</s:element>
这是我要发送的xml,由PHP代码中的$ userDataXML表示
<User>
<AccountExpiryDate>2114-08-11T15:22:08.983</AccountExpiryDate>
<AccountFailedLoginAttempts>0</AccountFailedLoginAttempts>
<AccountLastActiveDate>2015-12-11T13:17:57.6916477-05:00</AccountLastActiveDate>
<AccountLastIPAddress>192.81.170.5</AccountLastIPAddress>
<AccountLastLoginDate>2015-12-11T13:17:57.6916477-05:00</AccountLastLoginDate>
<AccountLoggedIn>true</AccountLoggedIn>
<AccountLogin>testuser3</AccountLogin>
<AccountPassword>password</AccountPassword>
<AccountPasswordChangeRequired>false</AccountPasswordChangeRequired>
<Active>true</Active>
<Address>
<CompanyID>0</CompanyID>
<ID>0</ID>
<UserID>210</UserID>
</Address>
<AddressList>
<Address>
<CompanyID>0</CompanyID>
<ID>0</ID>
<UserID>210</UserID>
</Address>
</AddressList>
<CreatedByUserID>1</CreatedByUserID>
<CreatedDate>2015-10-29T19:23:29.64</CreatedDate>
<CompanyID>4</CompanyID>
<Email1>fasd@THIS.HAS</Email1>
<ID>210</ID>
<LanguageID>0</LanguageID>
<ModifiedByUserID>1</ModifiedByUserID>
<ModifiedDate>2015-10-29T19:26:08.59</ModifiedDate>
<RoleID>9</RoleID>
<StoreID>0</StoreID>
<TokenID/>
<UpdateTimestamp>
<DateTime>2015-11-17T19:45:46</DateTime>
<MilliSeconds>718</MilliSeconds>
</UpdateTimestamp>
<Verified>true</Verified>
<XMLData>
<data xmlns=""/>
</XMLData>
</User>
这是我的SaveUser部分的PHP代码
$clientSaveUser = new SoapClient('$WSDL',array('trace'=>1));
$saveUserQueryData = array(
"Username"=> $master,
"Password"=>$masterPass,
"CompanyID"=>$compid,
"User"=>$userDataXML
);
$saveUser = $clientSaveUser->SaveUser($saveUserQueryData);
libxml_use_internal_errors(true);
$lastResponseSaveUser = $clientSaveUser->__getLastResponse();
感谢您的帮助!