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

Windows Forms Discussion :

C# requete POST qui s'ouvre dans un navigateur


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Points : 23
    Points
    23
    Par défaut C# requete POST qui s'ouvre dans un navigateur
    Bonjour,

    Le but est que lorsque je clique sur un élément de ma winform, j'accède à une page directement sans passer par la page login.
    La page que j'essaie d'atteindre est une page qui affiche des résultats.

    Elle accepte des requetes POST.

    J'aurai donc voulu savoir comment je peux à partir d'une HttpWebRequest, l'exécuter directement dans le navigateur.

    Il faut que je passe par cette requete les paramètres de login et les paramètres de la recherche.

    Pour les autres pages, j'arrive à y accéder sans problème, mais pour la recherche, il ne me prend en compte que le premier champ.

    J'envoie donc cette requete
    http:// xxx/account/login.asp?log=ok&b=1&pseudo=xxxx&password=xxxx&Submit=xxxx&redirect=../search/result.asp?age=2&pays=24&Submit=Rechercher&xxxx

    Mais il ne prend en compte que le premier paramètre donc l'age, le reste de la requete est laissé tombé.
    Pourtant la page login.asp prend des requetes POST également et elle prend en compte tous les paramètres.

    La seule différence que je vois entre les 2, la page login.asp utilise "request("pseudo")" et result.asp utilise "request.form("age")".

    Quelqu'un a-t-il une idée?

    Merci d'avance.

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Je ne comprends pas bien ce que tu dis ...

    J'envoie donc cette requete
    http:// xxx/account/login.asp?log=ok&b=1&pseudo=xxxx&password=xxxx&Submit=xxxx&redirect=../search/result.asp?age=2&pays=24&Submit=Rechercher&xxxx

    Mais il ne prend en compte que le premier paramètre donc l'age, le reste de la requete est laissé tombé.
    Pourtant la page login.asp prend des requetes POST également et elle prend en compte tous les paramètres.
    Là, tu fais du GET ...

    Pourquoi parles-tu de POST ?

    Quel est ton code pour l'envoi en POST ?

    Envoie tout en GET ou tout en POST, mais si tu tentes les 2, ca risque de ne pas fonctionner.

    Si la page accepte les requêtes POST, fais le de cette manière, ca te permettra de masquer tes champs de login/pass, etc ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Points : 23
    Points
    23
    Par défaut
    La page ASP accepte du POST.

    Le problème, c'est que j'essaie de l'atteindre depuis une application C#.

    Et je ne sais pas exécuter une requete POST qui s'exécute dans le navigateur web par défaut.

    J'essaye de faire une page intermédiaire en ASPX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form id="form" runat="server" method="post" action="http://www.nice-people.be/login.asp?log=ok">
        <div>
            <asp:TextBox ID="login" runat="server"></asp:TextBox>
            <asp:TextBox ID="pass" runat="server"></asp:TextBox>
            <asp:Button ID="Submit" runat="server" Text="SeConnecter" onclick="Submit_Click" /><%--  PostBackUrl="http://www.nice-people.be/login.asp?log=ok" />--%>
        </div>
        </form>
    et normalement en l'appelant de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:1465/Redirect/redirect.aspx?login=xxxx&pass=xxxx&Submit=SeConnecter
    Je pensais que ca allait fonctionner.
    Mais mon formulaire fonctionne très bien.

    Le problème c'est l'appel, il ne veut pas directement exécuter mon formulaire.
    Je suis obligé de rentrer les données à la main

  4. #4
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    J'ai bien peur de ne pas comprendre ce que tu veux ...

    Tu dis :
    Et je ne sais pas exécuter une requete POST qui s'exécute dans le navigateur web par défaut.
    Tu cherches à envoyer en POST ou en GET en définitive ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:1465/Redirect/redirect.aspx?login=xxxx&pass=xxxx&Submit=SeConnecter
    Donc tu veux envoyer en GET ... ?

    Request.QueryString["machin"]; (GET)
    ou Request.Form... (POST)

    Que ce soit en POST ou en GET, ca ne changera rien ... Il saisira le champ en question.

    Je ne vois pas ou tu souhaites en venir... Essayes de détailler au mieux ton probleme et de mettre les choses au clair.

    Ou bien c'est moi qui suis completement à coté de la plaque, mais bon ...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Points : 23
    Points
    23
    Par défaut
    Ou bien c'est moi qui suis completement à coté de la plaque, mais bon ...
    Non c'est moi qui ai un peu de mal à mettre au clair mon problème

    En fait, j'ai une page ASP (pas .NET) que j'essaie de contacter et qui contient des request.form("...").

    Je ne peux donc pas l'appeler en passant les params dans l'URL avec une requete GET.

    Le problème, c'est qu'en C#, je n'ai pas trop le choix (si je veux l'ouvrir dans un navigateur web externe) de placer les paramètres dans l'URL.

    J'ai donc fait une page intermédiaire contenant un formulaire avec les mêmes champs que ma page ASP.
    Cette page enverra les informations en POST.
    Moi par C# je contacte cette page intermédiaire en GET.

    Mon problème était que le formulaire ne se validait pas.

    Depuis mon dernier message, j'ai cherché encore et j'ai finalement fait en JScript un "document.form.submit()"

    Y a-t-il un autre moyen de contacter ma page ASP directement par le C# sans cette page intermédiaire?

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2004
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2004
    Messages : 279
    Points : 106
    Points
    106
    Par défaut
    Aaaaaah d'accord !!!

    Là je comprends mieux !!!

    Oui, donc en C#, tu peux créer un objet Requête que tu enverras à ta page, en spécifiant la méthode POST.

    Regarde du coté de la classe HttpWebRequest, c'est comme cela que je fais pour contacter moi aussi, une page distante par l'intermédiaire de post.

    Inutile d'ouvrir une page dans un navigateur pour pouvoir le faire ... Tout se fera de manière transparente dans ton application grâce à cet objet HttpWebRequest.

    Tu lui spécifies : et tout se fera par l'intermédiaire de cette méthode et donc, du coté de l'autre page, elle interprétera correctement tes données que tu lui auras envoyé.

    Regarde sur le forum, fais une recherche, tu auras pleins d'exemples à ce sujet !
    N'oublie pas non plus MSDN, qui te donnera les notions de base pour l'implémenter et l'utiliser.

    Bon travail

Discussions similaires

  1. Lien vers un pdf qui s'ouvre DANS le navigateur
    Par ANOVA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/10/2010, 16h16
  2. [Syntaxe] Lien d'une frame qui s'ouvre dans une autre
    Par Petrucci dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 02/04/2007, 22h14
  3. [C#]Lancer un processus qui s'ouvre dans l'application
    Par padodanle51 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/07/2006, 18h21
  4. [HTML] click lien sur une cellule et page qui s'ouvre dans une autre cellule
    Par mariogarcia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 24/05/2006, 14h37
  5. galerie d'image qui s'ouvre dans une autre fenêtre
    Par crampouz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 14h17

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