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

C++Builder Discussion :

Comment lire par un bout de programme le fichier d'un site internet avec mot de passe [Web/Reseaux]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut Comment lire par un bout de programme le fichier d'un site internet avec mot de passe
    Bonjour,
    dans une appli (C++Builder 2010), j'ai utilisé IdHTTP1 pour lire le contenu d'un fichier sur un site internet.
    Voici les codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	TMemoryStream *MyMem = new TMemoryStream();
    	AnsiString URLFile = "http://test.free.fr//test.txt";
    	IdHTTP1->Get(URLFile, MyMem);  			
    	MyMem->Seek(0, soFromBeginning);  		
    	Memo1->Lines->LoadFromStream(MyMem);
    	delete MyMem;
    Cela marche, mais quand il y a un login et un mot de passe sur ce site, une exception menu est affiché (error "HTTP/1.1 401 Autorisation Required").
    Est-ce qu'il y a un moyen d'intégrer le login et le mot de passe dans les codes ci-dessus?

    Merci d'avance
    Xavier

  2. #2
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 735
    Par défaut
    Bonjour.

    Tu as un screenshot de ce menu ? C'est une popup du navigateur ou bien un formulaire HTML dans la page ?

    Dans le premier cas, il peut s'agir d'une authentification serveur (baisc auth ou digest auth) et il faut envoyer le login / mot de passe dans l'en-tête HTTP.
    Dans le second cas, je ne sais pas trop mais il y a surement aussi quelque chose à faire avec les en-têtes HTTP pour simuler l'envoi des données du formulaire.

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Merci Daïmanu.
    En effet, j'ai un peu mal-décrire l'erreur (j'ai modifié le message initial).
    Il y a une exception (error "HTTP/1.1 401 Autorisation Required"), voir la pièce jointe.
    Ce que je veux est de récupérer un fichier dans un site avec login et mot de passe.

    Cordialement
    Xavier
    Images attachées Images attachées  

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 735
    Par défaut
    Ok, donc on tombe dans le premier cas.

    Je ne connais pas du tout builder, mais en fouinant sur le net je pense que le code qu'il faut doit ressembler à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IdHTTP1->Request->BasicAuthentication = true;
    IdHTTP1->Request->UserName = "Le username";
    IdHTTP1->Request->Password = "Le mot de passe";
    IdHTTP1->Get(URLFile, MyMem);
    Dis moi si l'ajout de ces trois ligne fonctionne.

    Pour l'explication c'est le serveur qui est configuré pour protéger la ressource à cette URL, on envoie donc les identifiants avec la requête pour accéder à la ressource.

  5. #5
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Merci beaucoup Daïmanu.
    Avec tes codes, mon petit programme marche parfaitement!

    Je profite de te poser une autre question un peu approfondi à ce sujet:
    Quand j'utilise mon programme au bureau où l'accès d'internet est relativement long via un par-feu d'entreprise, une erreur s'affiche comme un dépassement de délai.
    Est-ce qu'il y a un moyen de mettre un peu plus de temps lors d'interroger avec un site internet.
    Encore un grand merci
    Xavier

  6. #6
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    735
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 735
    Par défaut
    C'est un sujet de réseau, je ne suis pas spécialiste, mais je pense que cette manipulation est à faire sur le pare-feu.

    Pour ce genre de questions tu auras des réponses plus pertinentes dans la section réseaux du forum.

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

Discussions similaires

  1. Comment lire et afficher les secteurs d'un fichier
    Par altair8080 dans le forum C++
    Réponses: 3
    Dernier message: 21/06/2013, 13h55
  2. sharmap, comment lire le tableau de données d'un fichier shp
    Par mapmip dans le forum Windows Forms
    Réponses: 0
    Dernier message: 25/05/2011, 16h08
  3. Comment lire des valeurs de paramètres dans un fichier ?
    Par timbrochier dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2010, 12h11
  4. comment accéder par VBA aux modules d'un VBProject avec mot de passe
    Par doude_cr dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/05/2010, 16h19
  5. Réponses: 3
    Dernier message: 31/01/2007, 17h46

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