[PHP & SOAP] Function call

Pagina: 1
Acties:

Onderwerpen


  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 18-07 10:58
Wat heb ik?
- Een WSDL die eigenlijk gemaakt is voor Axis.
- Een stukje code waarin de login beschreven is:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
<xsd:complexType name="Login">
<xsd:sequence>
<xsd:element name="User" type="xsd:string"/>
<xsd:element name="Password" type="xsd:string" minOccurs="0"/>
<xsd:element name="EncryptedPwd" type="xsd:string" minOccurs="0"/>
<xsd:element name="Credentials" type="xsd:base64Binary" minOccurs="0"/>
<xsd:element name="Domain" type="xsd:string" minOccurs="0"/>
<xsd:element name="UserSetting" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ValidateRoles" type="typens:ArrayOfString" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Login" type="typens:Login"/>


- PHP code om deze functie aan te roepen;
PHP:
1
2
3
4
5
6
7
//Get Functions
$client = new SoapClient("http://server:8000/wsdl/v8/axis/Login", array('trace'=>1));
var_dump($client->__getFunctions());    
    
//Login 
$params = array('User'=>'Administrator', 'Password'=>'blablabla','ValidateRoles'=>true);
$request = $client->Login($params);


Probleem?
Ik krijg een error bij het uitvoeren:
code:
1
SoapFault exception: [HTTP] Error Fetching http body, No Content-Length, connection closed or chunked data in


Ik heb weinig ervaring met PHP en SOAP dus ik hoop dat iemand mij kan helpen.
Je hoef alleen de parameters aan te roepen die ik ook gebruik.
De rest hebben namelijk default waarden.

Ik vind het ook raar dat het systeem deze WSDL onder Axis heeft staan.
WSDL is toch generiek voor elke taal? Zou toch geen verschil moeten zijn?
We hebben ook .Net WSDL en die geeft ook deze error.

Ik hoop dat ik genoeg info gegeven heb en dat jullie er iets me kunnen.

Twitter @cmeerbeek / Halo Waypoint Profile


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben ook geen SOAP / PHP expert, maar dit ziet eruit als een HTTP error, nl. het ontbreken van het content-length attribuut in de HTTP header.

Dat is denk ik dus niet een probleem met de aanvraag maar met het versturen van het SOAP bericht via HTTP. Ik denk dat het ofwel een configuratiefout ofwel een code fout is in de webservice die je aanroept.

HTH :)

Acties:
  • 0 Henk 'm!

  • Bbfreak
  • Registratie: September 2002
  • Laatst online: 18-07 10:58
Verwijderd schreef op vrijdag 19 augustus 2005 @ 14:17:
Ik ben ook geen SOAP / PHP expert, maar dit ziet eruit als een HTTP error, nl. het ontbreken van het content-length attribuut in de HTTP header.

Dat is denk ik dus niet een probleem met de aanvraag maar met het versturen van het SOAP bericht via HTTP. Ik denk dat het ofwel een configuratiefout ofwel een code fout is in de webservice die je aanroept.

HTH :)
Zie je, tot hier is mijn PHP -> SOAP kennis al beperkt :)
Het probleem is dus dat we een WSDL gebruiken van een bestaand product.
Dit is alleen voor gebruik met Axis. PHP wordt officieel niet ondersteund.
Ik dacht alleen dat dit niet uit mag maken dus ik probeer het toch.

Over PHP configuratie. Ik heb de DLL toegevoegd aan php.ini.
Dit is, wat ik gelezen heb, het enige wat je moet doen om het werkend te krijgen onder Windows.
Klopt dit? Of is er meer?

Twitter @cmeerbeek / Halo Waypoint Profile


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 20:38

alienfruit

the alien you never expected

Welke PHP versie gebruik je? De ondersteuning voor SOAP is in 5.0.x met name 5.0.4 sterk verbeterd tegenover de ondersteuning in v4.