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 :

Problème lors de l'envoi d'un Web Request


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Problème lors de l'envoi d'un Web Request
    Bonjour,

    J'utilise un validateur custom pour valider mon ReCaptcha mais lors de l'envoie de la requete de validation au serveur de google le code que j'ai honteusement copié plante.


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
     protected void vldCustom_ServerValidate(object source, ServerValidateEventArgs args)
            {
                string URLAuth = "http://www.google.com/recaptcha/api/verify";
     
                string postString = string.Format("privatekey={0}&remoteip={1}&challenge={2}&response{3}",
                    "6LfXreISAAAAAIlF9Wfqo5sRnsUpL1doFCh_qp3E",
                    Request.ServerVariables["LOCAL_ADDR"],
                    Request.Form["recaptcha_challenge_field"],
                    Request.Form["recaptcha_response_field"] );
     
                const string contentType = "application/x-www-form-urlencoded";
     
                System.Net.ServicePointManager.Expect100Continue = false;
     
                CookieContainer cookies = new CookieContainer();
                HttpWebRequest webRequest = WebRequest.Create(URLAuth) as HttpWebRequest;
                webRequest.Method = "POST";
                webRequest.ContentType = contentType;
                webRequest.CookieContainer = cookies;
                webRequest.ContentLength = postString.Length;
                webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1";
                webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                webRequest.Referer = "https://accounts.craigslist.org";
     
                Stream requestStream = webRequest.GetRequestStream();
     
                StreamWriter requestWriter = new StreamWriter(requestStream);
                requestWriter.Write(postString);
     
                WebResponse response = webRequest.GetResponse();
                StreamReader responseReader = new StreamReader(response.GetResponseStream(),System.Text.Encoding.UTF8,true,100);
                string responseData = responseReader.ReadToEnd();
     
                requestWriter.Close();
                responseReader.Close();
                webRequest.GetResponse().Close();
            }
    j'obtient l'erreur
    You must write ContentLength bytes to the request stream before calling [Begin]GetResponse.
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebResponse response = webRequest.GetResponse();
    Je ne sais pas trop pourquoi mon stream me donne cette erreur ni comment la régler, avez vous déjà été confronté à cette erreur ?

    Merci d'avance pour votre aide

    Félix

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Ton ContentLength ne représente pas le nombre de caractères de ta demande mais bien sa taille en o.

    Je te laisse lire ça : http://msdn.microsoft.com/fr-fr/libr...entlength.aspx

    Au passage Google a apparemment dév un control tout prêt pour ton cas : https://developers.google.com/recapt...s/aspnet?hl=fr

    Avant de partir sur quelque chose d'aussi construit, essaie peut être de construire ta webrequest depuis 0 en appelant google.com par exemple histoire de te faire la main pour complexifié petit à petit.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    C'est bien le controle de google que j'utilise mais, il est conçu pour être compatible avec le framework 1.1 où le concept de validation group n'existe pas, pour "activer" une validation client-side, je suis obligé de le faire moi même.

    Merci pour ta réponse, je vais tester ça tout de suite

Discussions similaires

  1. Problème lors de l'envoi de données via laision RS 232
    Par Rastaforien dans le forum Langage
    Réponses: 9
    Dernier message: 26/06/2008, 11h54
  2. problème lors de l'envoi d'un formulaire
    Par fk04 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 15/04/2007, 21h00
  3. Problème lors de l'envoi d'un mail
    Par ricki dans le forum ASP
    Réponses: 3
    Dernier message: 15/11/2006, 21h54
  4. Problème lors de l'envoie d'un mail (JavaMail)
    Par nicofromChina dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/05/2006, 10h23
  5. [Web-App][Servlet][Axis] Problème lors de l'arrêt de la web-app
    Par c.tranquille dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 02/12/2005, 09h49

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