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

ASP.NET Discussion :

[C#] Problème avec une requête WebRequest/WebResponse


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut [C#] Problème avec une requête WebRequest/WebResponse
    Salut,

    J'ai des difficultés avec le bout de code suivant, qui me renvoie des exceptions uniquement en mode debug alors que ça compile correctement. Voilà le 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
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    ...
    string buffdt = "";
    			WebHeaderCollection webHC = null;
    			ClassCommonVar clsCV = new ClassCommonVar();
    			WebResponse webResp = null;
    			try
    			{								WebRequest webReq = WebRequest.Create("http://" + (string) ftpList[0] + clsCV.reqSynchro);				
    				webResp = webReq.GetResponse();				
     
    				buffdt = (webResp.Headers["Date"]).ToString();				
    			}
    			catch(Exception ex)
    			{
    				FormErr1 frmE = new FormErr1("Problème de synchronisation date/heure : "+ex.ToString());
    				frmE.ShowDialog();						   
    			}
    			finally
    			{
    				webResp.Close();
    			}
    ...
    Les exceptions sont successivement les suivantes :
    A la ligne webResp = webReq.GetResponse();, j'ai une erreur du type System.IO.FileNotFoundException 2 fois.
    Puis, sur la même ligne un SystemUriException.
    Sur la ligne webResp.Close();, j'ai deux erreurs : System.FormatException puis System.IO.IOException (chunk length was not valid).

    Voilà si quelqu'un pouvait m'expliquer ces différentes erreurs...
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Bon en fait l'erreur bloquante est celle concernant le chunk length.

    En ayant étudié un peu le cas, cela vient du fait que la réponse du serveur à la requête qui lui a été envoyée contient les éléments suivants :

    • Transfert-Encoding: chunked\r\n
      ...
      Data chunk: 50 octets
      Chunk size: 50 octets
      Data (50 bytes)
      Chunk boundary


    La réponse reçue est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <HTML>..OK:Fri Apr 14 16:10:01 CEST 2006..</HTML>
    Si on compte la longueur de la réponse, elle fait 49 octets.
    Donc, c'est ça qui ne va pas ?
    Qu'en pensez-vous ?
    Avez-vous des suggestions sur la résolution de ce problème ?
    Il faut agir sur le serveur ?

    Merci pour toute information complémentaire.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Bon finalement, j'ai fini par trouver, il faut préciser la version du protocole utilisée par le serveur WEB : en l'occurrence 1.0.

    -----------------------------------------------------------------
    HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create("http://" + (string) ftpList[0] + clsCV.reqSynchro);
    webReq.ProtocolVersion = new Version(1, 0);
    webResp = (HttpWebResponse)webReq.GetResponse();
    Stream respStream = webResp.GetResponseStream();
    StreamReader reader = new StreamReader(respStream);
    buffdt = reader.ReadToEnd();
    -----------------------------------------------------------------

    Donc l'instruction webReq.ProtocolVersion = new Version(1, 0);
    ne rend plus l'application bloquante.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TADOQuery] Problème avec une requête
    Par yannba dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/01/2006, 13h51
  2. Problème avec une requête
    Par demonark dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/09/2005, 05h35
  3. Problème avec une requête
    Par ringostarr dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/04/2005, 20h34
  4. Problème avec une requête
    Par snoopy69 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/01/2005, 12h39
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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