[Services Web] - [HTTP] Method Not Allowed

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Services Web] - [HTTP] Method Not Allowed

[Services Web] - [HTTP] Method Not Allowed

par wayode » 21 avr. 2011, 10:39

Bonsoir à tous,

Je me retrouve confronter à un problème avec un service web que je dois consommer.

Voici mon bout de code :

Code : Tout sélectionner

<?php ini_set('soap.wsdl_cache_enabled', '0'); ini_set('soap.wsdl_cache_ttl', '0'); $wsdl = 'http://***.asmx?WSDL'; $options = array( 'login' => '***', 'password' => '***', 'location' => 'http://***.fr' ); $client = new SoapClient($wsdl, $options); $request = $client->LoginRequest('***', '***');
Et voici l'erreur qu'il m'affiche :

Code : Tout sélectionner

Fatal error: Uncaught SoapFault exception: [HTTP] Method Not Allowed in ... Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', ...', 1, 0) #1 [internal function]: SoapClient->__call('LoginRequest', Array) #2 ...client.php(13): SoapClient->LoginRequest('...') #3 {main} thrown in ... on line 13
Et enfin, voici un bout du XML du Web service :

Code : Tout sélectionner

POST /***.asmx HTTP/1.1 Host: ***.fr Content-Type: text/xml; charset=utf-8 Content-Length: [B]length[/B] SOAPAction: "http://***/LoginRequest" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <LoginRequest xmlns="http://***.org/"> <LOGIN_REQUEST xmlns="http://***Login"> <***_LOGIN xmlns="">[B]string[/B]</***_LOGIN> <***_MOT_DE_PASSE xmlns="">[B]string[/B]</***_MOT_DE_PASSE> </LOGIN_REQUEST> </LoginRequest> </soap:Body> </soap:Envelope>
Quelqu'un aurait-il une idée sur la raison de cette erreur ?
Je pencherai pour le fait qu'il faille envoyer ma requête en POST et non en HTTP, mais je ne vois pas du tout comment m'y prendre.
Merci d'avance pour vos réponses.