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 :

Tentative avec HttpWebRequest, mais sans succès.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Tentative avec HttpWebRequest, mais sans succès.
    Bonjour à tous.

    Toujours à la recherche d'une façon d'implémenter Paypal dans mon site (selon c'est pourtant simple, ben moi j'y suis depsui trois semaines !!!) je tente avec un HttpWebREquest, sauf que je connais pas et je comprends pas trés bien ce qu'il demande.

    Alors j'ai tenté un exemple simple vu que la MSDN est pas foutu de donner une exemple complet.

    J'ai un Button sur ma page et dans l'évènement click je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim req As HttpWebRequest = WebRequest.Create("http://monsite/test.aspx")
            With req
                .Method = "POST"
                .ContentLength = 31
                .ContentType = "application/x-www-form-urlencoded"
     
            End With
            Dim streamOut As New StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII)
            streamOut.Write("?bil=oute")
     
            Dim streamIn As New StreamReader(req.GetResponse().GetResponseStream())
            streamOut.Close()
            streamIn.Close()
    Et là, lorsque je clique sur le bouton il tourne, indéfiniment (enfin, j'ai arrêté d'attendre à 7 minutes

    Est ce qu'une âme sympathique lisant ces lignes pourriat m'éclairer sur ce que j'ai oublié de lui donner à manger pour qu'il fasse le truc simple : aller sur la page et afficher la QuesryString que je lui passe.

    Pour info, tous les exemples que j'ai trouvé sur le sujet sont en C#, donc j'ai été obligé de traduire le code. Mais vu que je parle pas courament le C#, y a certainement des erreurs.

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    A mon avis c'est parce que tu as spécifié 31 comme ContentLength, mais tu ne lui envoies que 9 caractères... donc le serveur attend la suite, puisqu'il s'attend à recevoir 31 octets.

    Il me semble que tu n'es pas obligé de spécifier le ContentLength de toutes façons, si tu ne dis rien il devrait se débrouiller sans.

    Si tu veux le spécifier quand même, il faut d'abord calculer la longueur en octets de ce que tu vas envoyer.

    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
        Dim bytes As Bytes() = System.Text.Encoding.ASCII.GetBytes("?bil=oute")
     
            Dim req As HttpWebRequest = WebRequest.Create("http://monsite/test.aspx")
            With req
                .Method = "POST"
                .ContentLength = bytes.Length
                .ContentType = "application/x-www-form-urlencoded"
            End With
            Dim streamOut As Stream = req.GetRequestStream()
            streamOut.Write(bytes, 0, bytes.Length)
            streamOut.Close()
     
            Dim streamIn As New StreamReader(req.GetResponse().GetResponseStream())
            Dim response As String = streamIn.ReadAlltext()
            streamIn.Close()
    D'autre part il faut aussi fermer le flux de la requête avant d'essayer d'obtenir la réponse

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci Tomlev.

    Je découvre plein de truc là, je suis content.

    J'ai un premier souci avec Bytes(). Si j'enlève le S, ça sinon il em dit que c'est un "type non défini". Mais est ce bien la même chose ?

    Ensuite j'ai un souci sur le Response à la fin. Il me dit que ReadAllTextn'es pas un membre de System.IO.StreamReader. Sauf que là, je ne sais pas quoi lui donner à la place.

    Du coup, je peux pas tester tant qu'il y a cette erreur. Vu que Response n'est pas utilisé, je suis obligé de le mettre ?

    Je commence à comprendre le principe de la chose.

    J'ai une question sur l'arrivée : dans la chaine que j'envoi c'est une QueryString, mais est ce que je récupère bien avec un Request.QueryString ou avec un Request.From ?

    EDIT : je viens de remplacer ReadAllText par ReadToEnd (chose la plus approchante que j'ai trouvé). Lorsque je click sur le bouton il reboucle sur la même page et je ne va pas sur la page indiquée. C'est normal ?
    ou je dois faire un truc avec le Response ?

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Lorsque je click sur le bouton il reboucle sur la même page et je ne va pas sur la page indiquée. C'est normal ?
    ou je dois faire un truc avec le Response ?
    C'est normal. Là tu simules l'appel à une page en code behind, tu ne demandes pas au navigateur de l'afficher

    Tout le rendu HTML de la page en question se trouve dans ta variable response

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci LuteceFalco

    Alors qu'est ce que je fais de Response ?

    Et surtout, parce que là je fais un test tout bête d'envoi d'une connerie pour voir si ça fais un truc, est ce qu'aprés je peux simuler l'envoi d'un formulaire avec des vraies info vers Paypal ?

    La vraie question est là.

    C'est dingue de pas trouver de site en ASP.NET qui utilise Paypal. J'avais eu la même galère avec AlloPass. Qu'est ce que ces gens ont contre .NET ?

    Merci pour votre aide les gars.

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Alors qu'est ce que je fais de Response ?
    J'en sais rien.
    Si PayPal est censé afficher un code, tu peux parser response pour voir si code est bien présent

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/11/2010, 08h03
  2. Réponses: 4
    Dernier message: 06/04/2010, 10h36
  3. Réponses: 4
    Dernier message: 11/05/2009, 15h59
  4. Requete avec count mais sans grouper.
    Par fabrice91 dans le forum Requêtes
    Réponses: 19
    Dernier message: 29/04/2009, 16h25

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