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

Services Web Discussion :

HTTP REQUEST Problème code retour


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut HTTP REQUEST Problème code retour
    Bonjour,

    Existe-t_il une méthode permettant de passer les exceptions HTTP comme la 406, ce qui me permettrait de récupérer le flux xml en retour.
    Je m'explique, je lance un appel avec un flux xml en POST et on me retourne des codes (comme 200 ou 406, pas moyen de supprimer ces codes retours du serveur) et un flux XML.
    Dans le cas du code 200 pas de pb car HTTP OK mais dans tous les autres cas je tombe dans une WebException sans savoir comment récupérer le contenu de :
    HttpWebResponse response = (HttpWebResponse)request.GetResponse() dans mon flux.
    Please help je cherche mais impossible de trouver quoi que ce soit.
    Voici mon code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    HttpWebRequest request = null;
                if (m_type == PostTypeEnum.Post)
                {
                    Uri uri = new Uri(url);
                    request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Method = "POST";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentLength = postData.Length;
                    using (Stream writeStream = request.GetRequestStream())
                    {
                        UTF8Encoding encoding = new UTF8Encoding();
                        byte[] bytes = encoding.GetBytes(postData);
                        writeStream.Write(bytes, 0, bytes.Length);
                    }
                }
                else
                {
                    Uri uri = new Uri(url + "?" + postData);
                    request = (HttpWebRequest)WebRequest.Create(uri);
                    request.Method = "GET";
     
                }
                request.AllowAutoRedirect = false;
                string result = string.Empty;
     
                HttpWebResponse response = (HttpWebResponse request.GetResponse()

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je pige pas tout.

    Pourquoi tu voudrais récupérer un résultat si c'est une erreur ?

    Le résultat pour un 404 serait Page Not Found par exemple, ça t'avance à quoi de le récupérer ? Autant catcher ton exception et afficher son erreur, c'est tout pareil.

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    J'suis d'accord avec toi c'est pas logique du tout, mais le client en face ne comprend pas que les codes HTTP ne servent pas à ça.
    Cependant en PHP il est possible de récupérer le flux même si il y a une erreur.
    Je voulais faire la même chose en c#

    Citation Envoyé par Skyounet Voir le message
    Je pige pas tout.

    Pourquoi tu voudrais récupérer un résultat si c'est une erreur ?

    Le résultat pour un 404 serait Page Not Found par exemple, ça t'avance à quoi de le récupérer ? Autant catcher ton exception et afficher son erreur, c'est tout pareil.

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par kinola Voir le message
    J'suis d'accord avec toi c'est pas logique du tout, mais le client en face ne comprend pas que les codes HTTP ne servent pas à ça.
    Cependant en PHP il est possible de récupérer le flux même si il y a une erreur.
    Je voulais faire la même chose en c#
    Oui oui mais au final si tu catch ta webexception et que tu récupères ton exc.ErrorMessage ce sera comme si tu avait récupéré le flux de réponse avec l'erreur.

    Je crois pas que y'ait moyen de passer outre de toute façon, tout ça est gérer en interne dans le classe, après tu peux réécrire une classe en utilisant les sockets et là tu pourras lire les flux d'erreur.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 26
    Par défaut
    ok merci beaucoup
    Donc c'est peut être faisable avec les socket ?


    Citation Envoyé par Skyounet Voir le message
    Oui oui mais au final si tu catch ta webexception et que tu récupères ton exc.ErrorMessage ce sera comme si tu avait récupéré le flux de réponse avec l'erreur.

    Je crois pas que y'ait moyen de passer outre de toute façon, tout ça est gérer en interne dans le classe, après tu peux réécrire une classe en utilisant les sockets et là tu pourras lire les flux d'erreur.

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par kinola Voir le message
    ok merci beaucoup
    Donc c'est peut être faisable avec les socket ?
    Oui. Avec les sockets tu contrôles tout.

Discussions similaires

  1. Problème du retour à la ligne sur création de code dynamique
    Par zogug31 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/10/2013, 07h23
  2. Problème avec file_get_contents "HTTP request failed!"
    Par mikaelhervouet dans le forum Langage
    Réponses: 2
    Dernier message: 21/06/2012, 09h17
  3. jsp et code retour http
    Par eatherquake dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/09/2010, 11h03
  4. code retour UNIX sur erreur ORA
    Par vinz_07 dans le forum Administration
    Réponses: 7
    Dernier message: 25/08/2004, 11h04
  5. [commande DOS] Récupérer le code retour d'un programme
    Par bobunny dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 04/06/2004, 15h51

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