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 :
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", "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; }
Le programme se ferme et ne fait rien.
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; }
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 !
Partager