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 :

[ASP.Net 2] GET, POST et code behind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut [ASP.Net 2] GET, POST et code behind
    Salut,

    J'ai une question très bête en ASP.Net et je ne trouve aucune réponse satisfaisante que ce soit dans google ou dans la merveilleuse F.A.Q. (c'est ptet pas fréquent comme question).

    Je sais comment, en code-behind, aller sur une page avec la méthode GET.
    Tu construis ton URL pour ajouter la QueryString qu'il faut, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string url = "http://macible.com?param1=value1&param2=value2";
    Reponse.Redirect(url);
    En revanche, pour la méthode POST, nada. Je ne trouve rien, à part l'utilisation d'une form et des input type hidden, côté script.
    Oui mais moi j'ai besoin de faire un traitement côté serveur avant de rediriger mon utilisateur vers un site externe.

    Comme c'est un site de paiement bancaire, il est impensable de passer le montant de la transaction dans l'URL.
    Je dois très très mal chercher, ça me semble tout con comme problème. Ma question c'est donc :

    En code-behind, Comment rediriger mon utilisateur vers un autre site, en passant des paramètres avec la méthode POST ?

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Je déplace là où tu auras, je l'espère, plus de réponses

  3. #3
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Merci.

    P.S. : j'ai un peu de mal avec l'arborescence des sous catégories....
    Y'a des doublons ou c moi qui capte pas...
    * Y'a un C# > ASP.Net
    * et là on est où ? Je trouve même plus le lien vers Webforms & Dev web dans General DotNet...
    Vous avez fait des modif ou c moi qui suis trop fatigué ?

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut [1.0 / 1.1 / 2.0] GET, POST et code behind
    Salut,

    J'ai une question très bête en ASP.Net et je ne trouve aucune réponse satisfaisante que ce soit dans google ou dans la merveilleuse F.A.Q. (c'est ptet pas fréquent comme question).

    Je sais comment, en code-behind, aller sur une page avec la méthode GET.
    Tu construis ton URL pour ajouter la QueryString qu'il faut, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string url = "http://macible.com?param1=value1&param2=value2";
    Reponse.Redirect(url);
    En revanche, pour la méthode POST, nada. Je ne trouve rien, à part l'utilisation d'une form et des input type hidden, côté script.
    Oui mais moi j'ai besoin de faire un traitement côté serveur avant de rediriger mon utilisateur vers un site externe.

    Comme c'est un site de paiement bancaire, il est impensable de passer le montant de la transaction dans l'URL.
    Je dois très très mal chercher, ça me semble tout con comme problème. Ma question c'est donc :

    En code-behind, Comment rediriger mon utilisateur vers un site externe, en passant des paramètres avec la méthode POST ?

  5. #5
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Peut-être en utiliser Server.Transfert() ??
    Il redirige en renvoyant les données de formulaire (POST) d'une page vers une autre

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Bien tenté, mais server.Transfert ça ne marche que si tu ne sors pas du site.
    Or ici, le but est précisémment d'aller taper chez qqn d'autre (un site bancaire auquel je n'ai pas accès)

  7. #7
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par défaut
    Je penses que la solution à ton problème se trouve dans la librairies System.Net,
    avec entre autres les classes WebClient, HttpWebRequest, ...

    A fouiller mais je crois que c'est par là qu'il faut regarder.

  8. #8
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Mouaip... bah franchement... pas convaincu.
    Les solutions à coup de HttpWebRequest ne fonctionne pas très bien (l'utilisateur n'est pas redirigé vers la page)

    Du coup la seule solution semble de générer une form client et un javascript pour faire le submit. Et là j'ai des gros pb avec les validateurs.

    Moralité : j'ai changé de solution, je fais une page web, avec un pti javascript pour soumettre la form. Mais le pb c'est qu'une page web c'est pas dynamique.
    Donc j'ai tenté avec une page dynamique (aspx), et là c'est le drame : la page charge en boucle. Je n'y comprend rien.

    Je hais le web :p :p :p

  9. #9
    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
    Je fais comme ça (en VB.NET)

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    '********************************************************************************************
            '*  Fonction qui envoie par POST les data sur l'url et retourne le contenu de la réponse    *
            '********************************************************************************************
            Public Function PostData(ByVal url As String, ByVal data As String) As String
                Dim dataStream As Stream
                Dim reader As StreamReader
                Dim response As WebResponse
     
                Try
                    Dim request As WebRequest
                    ' Create a request using a URL that can receive a post. 
                    request = WebRequest.Create(url)
     
                    ' Set the Method property of the request to POST.
                    request.Method = "POST"
     
                    ' Create POST data and convert it to a byte array.
                    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(data)
     
                    ' Set the ContentType property of the WebRequest.
                    request.ContentType = "application/x-www-form-urlencoded"
     
                    ' Set the ContentLength property of the WebRequest.
                    request.ContentLength = byteArray.Length
     
                    ' Get the request stream.
                    dataStream = request.GetRequestStream()
     
                    ' Write the data to the request stream.
                    dataStream.Write(byteArray, 0, byteArray.Length)
     
                    ' Close the Stream object.
                    dataStream.Close()
     
                    ' Get the response.
                    response = request.GetResponse()
     
                    ' Display the status.
                    'literal.Text = CType(response, HttpWebResponse).StatusDescription + "<br>"
     
                    ' Get the stream containing content returned by the server.
                    dataStream = response.GetResponseStream()
     
                    ' Open the stream using a StreamReader for easy access.
                    reader = New StreamReader(dataStream)
     
                    ' Read the content.
                    Dim responseFromServer As String = reader.ReadToEnd()
     
                    Return responseFromServer
                Catch ex As Exception
                    If isErrorEnabled Then
                        log.Error(Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString + " " + Reflection.MethodBase.GetCurrentMethod().ToString, ex)
                    End If
     
                    Return ""
                Finally
                    ' Clean up the streams.
                    reader.Close()
                    dataStream.Close()
                    response.Close()
                End Try
            End Function

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 19
    Par défaut
    ok, merci, je vais transformer ça en C#

Discussions similaires

  1. associer event frameset à code behind asp.net
    Par ouadie99 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/06/2008, 15h33
  2. [ASP.NET / C#] Nettoyer un QueryString par code behind
    Par User.Anonymous dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/10/2007, 17h57
  3. Réponses: 9
    Dernier message: 06/08/2007, 01h37
  4. [asp.net] webcontrol déclaré en code behind
    Par thewaterkidny dans le forum ASP.NET
    Réponses: 7
    Dernier message: 25/06/2007, 13h28
  5. [ASP .NET 2.0] Ouvrir une popup en code-behind
    Par aloisio11 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/05/2007, 11h46

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