Bonjour,
J'utilise boost::asio et j'aimerai récupérer ce que me retourne une socket dans un string
J'ai trouvé sur leur site un exemple de code client HTTP, dont le code pour récupérer les infos est le suivant :
Ce code marche parfaitement mais il m'affiche les infos. Or je voudrai tout mettre dans un string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 while (boost::asio::read(socket, response, boost::asio::transfer_at_least(1), error)) std::cout << &response; if (error != boost::asio::error::eof) throw boost::system::system_error(error);
J'ai vu qu'on pouvait faire ceci :
Mais ça ne marche pas comme je veux. En fait, ça me lit les données mot par mot (donc c'est pas super si j'ai une longue page web), et ça ne me lit pas toute la page !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 string contenuPage, s; while (boost::asio::read(socket, response, boost::asio::transfer_at_least(1), error)) { std::istream is(&response); is >> s; contenuPage += s; }
Y'a-t-il un moyen plus simple (que je n'aurais pas vu) pour collecter les données ?
Merci d'avance
Partager