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

Boost C++ Discussion :

[ASIO] tcp::iostream et HTTPS


Sujet :

Boost C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �m�rite
    Avatar de mitkl
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2010
    Messages
    364
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 364
    Par d�faut [ASIO] tcp::iostream et HTTPS
    Bonjour � tous,

    je souhaiterai utiliser tcp::iostream de boost asio pour r�cup�rer un stream par HTTPS.

    Mon code est directement inspir� de http://www.boost.org/doc/libs/1_42_0...ime_client.cpp

    dans un premier temps si j'essaie de r�cup�rer des simples pages comme l'index de google par GET :

    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
    tcp::iostream s("google.com", "http");
    s   << "GET / HTTP/1.0\r\n"
        << "Host: google.com\r\n\r\n";
     
    if (!s)
    {
      std::cout << "Error: " << s.error().message() << std::endl;
    }
     
    std::string line;
    while (!s.eof())
    {
      std::getline(s, line);
      std::cout << ">" << line << std::endl;
    }
    Ceci marche tr�s bien, mais d�s que je change http en https :


    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
    tcp::iostream s("google.com", "https");
    s   << "GET / HTTP/1.0\r\n"
        << "Host: google.com\r\n\r\n";
     
    if (!s)
    {
      std::cout << "Error: " << s.error().message() << std::endl;
    } 
     
    std::string line;
    while (!s.eof())
    {
      std::getline(s, line);
      std::cout << ">" << line << std::endl;
    }
    Le programme se ferme et ne fait rien.

    J'ai d�j� essay� de remplacer https par 443 car j'ai vu en cherchant sur le net que certains mettaient le port directement. Je ne sais pas pourquoi �a ne fonctionne pas. Je ne passe jamais dans la condition d'erreur.

    A vrai dire, je ne sais pas si c'est possible de cette mani�re, je n'ai pas trouv� d'exemple sur le net d'un tcp::iostream avec https. A la limite, je n'attends pas une solution mais une technique de debuggage pour comprendre pourquoi �a ne fonctionne pas m'aiderait beaucoup, merci d'avance !

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    762
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 762
    Par d�faut
    Salut,

    http est un protocole qui envoie les donn�es en clair sur le r�seau donc ton GET ... en code ASCII. https est s�curis� et les donn�es envoy�es et re�ues sont crypt�es ! Du coup quand tu envois GET ... en https � google, il essaye de d�crypter ton truc, ce qui ne marche �videmment pas.

    En plus, vu que c'est crypt�, il doit y avoir des �changes de donn�es pr�alables, et si tu veux tout savoir, il faut regarder la RFC d�di�e � https.

    Par contre tu n'es pas oblig� de refaire la partie chiffrement et tu peux utiliser une biblioth�que comme open SSL.

    Si tu y arrives, �a m�int�resse d'avoir ton code source

  3. #3
    Membre �m�rite
    Avatar de mitkl
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2010
    Messages
    364
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 34
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 364
    Par d�faut
    D'accord donc en r�alit� c'est bien ce que je pensais (et que je redoutais), la partie chiffrement du protocole n'est pas prise en compte. Bon bah il va falloir mettre les mains dans le cambouis.

Discussions similaires

  1. Asio : TCP Async_read
    Par Kernald dans le forum Boost
    R�ponses: 28
    Dernier message: 31/01/2009, 10h36
  2. R�ponses: 11
    Dernier message: 24/09/2008, 14h22
  3. Ins�rer/g�rer son protocole TCP/IP, non-http
    Par balibalo dans le forum Wildfly/JBoss
    R�ponses: 6
    Dernier message: 29/08/2008, 17h18
  4. connexion TCP en java qui transiterait par un proxy HTTPS
    Par nouknouk dans le forum Entr�e/Sortie
    R�ponses: 3
    Dernier message: 09/04/2008, 15h56
  5. Connection HTTP 1.1 en TCP/IP et Proxy Orange
    Par Khertan dans le forum D�veloppement
    R�ponses: 1
    Dernier message: 24/08/2006, 11h11

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