IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Services Web] - Fatal error: Uncaught SoapFault exception: [HTTP] Method Not Allowed


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [Services Web] - Fatal error: Uncaught SoapFault exception: [HTTP] Method Not Allowed
    Bonsoir à tous,

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

    Voici mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    POST /***.asmx HTTP/1.1
    Host: ***.fr
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    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="">string</***_LOGIN>
            <***_MOT_DE_PASSE xmlns="">string</***_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.

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Peux-tu essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?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);
    print_r($client->__getFunctions());
    On verra si la fonction LoginRequest existe bien et si elle n'est pas privée.
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour Shikiryu,

    Et merci pour ta réponse, j'avais bien testé __getFunctions et __getTypes.
    Elles me retournent effectivement la liste des fonctions et des types de paramètres attendus, dont la méthode LoginRequest.

    D'où mon incompréhension.

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Le WSDL est donc bien atteint et il trouve bien les fonctions dedans.

    Si je comprend bien le message de retour, l'erreur que vous avez est une erreur HTTP et le libellé "Method Not Allowed" amène à penser à une erreur 405.

    Autrement dit un problème d'accès à la ressource au niveau du serveur depuis le WS.
    Cela peut provenir de pas mal de choses dont voici une liste non-exhaustive :
    • Chemin vers le fichier gérant la méthode LoginRequest introuvable
    • Chemin vers le fichier gérant la méthode LoginRequest protégé
    • Dossier protégé (SSL) et donc l'accès depuis le WS est refusé


    Avez-vous vérifier tout ça ?
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  5. #5
    Invité
    Invité(e)
    Par défaut
    Hello,

    http://www.informit.com/articles/art...69106&seqNum=7


    405 Method Not Allowed If a Web service receives a SOAP message via any HTTP method other than HTTP POST, the service should return a 405 Method Not Allowed error to the sender.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    @Shikiryu : je n'héberge pas le WS, je n'ai donc pas pu me renseigner

    @Mygale1978 : C'est dans cette direction que je pensais aller, mais je n'ai trouvé aucune info pour transmettre ma requête, spécifiquement, en POST (à part en faisant un formulaire en renseignant "action" ?)...

  7. #7
    Invité
    Invité(e)
    Par défaut
    POST ne doit pas être accépté sur le serveur de destination.

    Que renvoie un OPTIONS ?

    (http://julien-pauli.developpez.com/t...=page_3#LIII-B)

Discussions similaires

  1. soap Fatal error: Uncaught SoapFault exception:
    Par piotrowski-s dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2012, 08h17
  2. [Web Service] SOAP-Uncaught SoapFault exception: [HTTP] Could not connect to host
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 14/05/2012, 09h52
  3. [Smarty] Fatal error: Uncaught exception 'SmartyException'
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 20/11/2010, 11h24
  4. [Web Service] Fatal error: Uncaught SoapFault exception: [Client]..
    Par rosita dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 02/04/2010, 10h16
  5. Réponses: 1
    Dernier message: 16/02/2009, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo