Boost::asio => récupérer les données d'une socket
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 :
Code:
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); |
Ce code marche parfaitement mais il m'affiche les infos. Or je voudrai tout mettre dans un string.
J'ai vu qu'on pouvait faire ceci :
Code:
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;
} |
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 !
Y'a-t-il un moyen plus simple (que je n'aurais pas vu) pour collecter les données ?
Merci d'avance