2010-07-22 12 views
0

J'ai essayé d'utiliser un service Web qui a le fichier WSDL ci-dessous. Le peu dont je ne suis pas sûr, c'est ce que je suis censé faire ou passer avec la première partie. Il demande qu'un objet personaldetails avec un type tns lui soit passé mais je ne comprends pas ce que cela signifie? La méthode réelle que j'essaie d'utiliser s'appelle PersonalDetails_Update et je lui passe toutes les valeurs pertinentes mais elle continue à échouer et je soupçonne que cela a à voir avec cet objet personadetails qu'elle demande avant elle?Service Web utilisant SOAP WDSL avec PHP

<s:element name="PersonalDetails_Update"> 
− 
<s:complexType> 
− 
<s:sequence> 
<s:element minOccurs="0" maxOccurs="1" name="personaldetails" type="tns:PersonalDetails"/> 
</s:sequence> 
</s:complexType> 
</s:element> 
− 
<s:complexType name="PersonalDetails"> 
− 
<s:sequence> 
<s:element minOccurs="1" maxOccurs="1" name="ContactId" nillable="true" type="s:int"/> 
<s:element minOccurs="1" maxOccurs="1" name="GenderId" type="s:int"/> 
<s:element minOccurs="1" maxOccurs="1" name="EthnicityId" type="s:int"/> 
<s:element minOccurs="0" maxOccurs="1" name="Title" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Initials" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Honours" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="FirstName" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Surname" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Salutation" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Position" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Department" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="Organisation" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="AccessRequirements" type="s:string"/> 
<s:element minOccurs="0" maxOccurs="1" name="DietaryNeeds" type="s:string"/> 
<s:element minOccurs="1" maxOccurs="1" name="BirthDate" nillable="true" type="s:dateTime"/> 
<s:element minOccurs="1" maxOccurs="1" name="IsNewContact" type="s:boolean"/> 
<s:element minOccurs="1" maxOccurs="1" name="HoldingId" nillable="true" type="s:int"/> 
<s:element minOccurs="1" maxOccurs="1" name="WebId" nillable="true" type="s:int"/> 
<s:element minOccurs="1" maxOccurs="1" name="RecruitedId" type="s:int"/> 
</s:sequence> 
</s:complexType> 
− 
<s:element name="PersonalDetails_UpdateResponse"> 
− 
<s:complexType> 
− 
<s:sequence> 
<s:element minOccurs="1" maxOccurs="1" name="PersonalDetails_UpdateResult" type="s:int"/> 
</s:sequence> 
</s:complexType> 
</s:element> 

Répondre

0

La structure de l'information est d'envoyer quelque chose comme ceci:

<Envelope> 
    <Header/> 
    <Body> 
    <PersonalDetails_Update> 
     <personaldetails> 
     <ContactId>[some value]</ContactId> 
     <GenderId>[some value]</GenderId> 
     <EthnicityId>[some value]</EthnicityId> 
     <Title>[some value]</Title> 
     <Initials>[some value]</Initials> 
     <Honours>[some value]</Honours> 
     <FirstName>[some value]</FirstName> 
     <Surname>[some value]</Surname> 
     <Salutation>[some value]</Salutation> 
     <Position>[some value]</Position> 
     <Department>[some value]</Department> 
     <Organisation>[some value]</Organisation> 
     <AccessRequirements>[some value]</AccessRequirements> 
     <DietaryNeeds>[some value]</DietaryNeeds> 
     <BirthDate>[some value]</BirthDate> 
     <IsNewContact>[some value]</IsNewContact> 
     <HoldingId>[some value]</HoldingId> 
     <WebId>[some value]</WebId> 
     <RecruitedId>[some value]</RecruitedId> 
     </personaldetails> 
    </PersonalDetails_Update> 
    </Body> 
</Envelope> 

PersonalDetails_Update est le service que vous allez utiliser personaldetails est l'objet qui contiendra les détails PersonalDetails définit les détails

0

Jetez un oeil à Zend_Soap et native Soap extension. Les deux ont des informations sur la façon d'écrire un client de savon.

+0

$ client = new SoapClient (null, array ('location' => "http: //localhost/soap.php", 'uri' => "http: // test-uri /", 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL)); Savez-vous à quoi ces paramètres font référence et où je pourrais les trouver - en particulier URI et Location. L'exemple n'est pas bien documenté. – chocolatecoco

+0

@baswoni Ces paramètres sont des options que vous transmettez généralement lorsque vous travaillez en mode non-wsdl, par exemple. lorsque le premier argument du constructeur est nul. Les options sont expliquées en détail sur http://de2.php.net/manual/en/soapclient.soapclient.php – Gordon

+0

Je vais utiliser WSDL pour m'interfacer avec ce Web Service, donc je suis toujours dans une impasse et je J'essaie d'obtenir une réponse à ma question initiale - pourquoi y a-t-il un objet PersonalDetails et un objet PersonalDetails_Update? Je ne vois pas comment les liens que vous avez fournis aident à répondre à cette question? – chocolatecoco