[PHP/Soap] EWS - Set RequestServerVersion SOAP header?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,

Ik heb een SOAP connectie vanuit PHP met de Webservices van Exchange (EWS). Als ik de Public Folders wil doorzoeken met FindFolder zet ik de DistinguishedFolderId op publicfoldersroot en Traversal op Shallow.

Wanneer ik m'n script aanroep in de browser krijg ik de melding:
The request is valid but does not specify the correct server version in the RequestServerVersion SOAP header. Ensure that the RequestServerVersion SOAP header is set with the correct RequestServerVersionValue.
Na even googelen zie ik her en der dat ik de RequestServerVersionValue moet instellen op Exchange2007_SP1 (als ik kijk naar de version van Types.xsd en Messages.xsd staat deze standaard op Exchange2007_SP1).

Als ik de __call functie aanroep met de volgende header
PHP:
1
$h = new SoapHeader("http://schemas.microsoft.com/exchange/services/2006/types", "RequestServerVersion", "Exchange2007_SP1", true);
dan krijg ik de volgende foutmelding:
The request failed schema validation: The required attribute 'Version' is missing.
1) Heeft iemand enig idee hoe ik deze Version attribute kan vullen? :?
2) Of is de oplossing totaal anders?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah, heb m'n antwoord gevonden!!

De oplossing is toch met behulp van de SoapHeader. De value moest een array zijn, met de key als attribute en value als value :)

Mocht iemand het nodig zijn:
PHP:
1
$h = new SoapHeader("http://schemas.microsoft.com/exchange/services/2006/types", "RequestServerVersion", array("Version"=>"Exchange2007_SP1"));


Ik plaats het toch, gezien ik er zeer weinig van kan vinden. Misschien nuttig voor anderen.