Domanda

Cercando di utilizzare Libcurlpp (un wrapper C ++ per libcurl) per pubblicare un modulo e ottenere la risposta.Funziona tutto, ma non ho idea di come ottenere l'accesso a livello programmatico alla risposta dallo oggetto Curlpp :: Easy dopo che la transazione HTTP ha finito.BASCIALY:

#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
...
curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://example.com/" ) );
foo.setOpt( new curlpp::options::Verbose( true ) );
...many other options set...
foo.perform();  // this executes the HTTP transaction
.

Quando viene eseguito questo codice, poiché Verbose è impostato su true, posso vedere la risposta ottenere l'output su StDout.Ma come posso accedere alla risposta completa invece di averlo scarico a Stdout?Il CurlPP :: facile non sembra avere alcun metodo per accedere alla risposta.

Un sacco di colpi in Google con persone che fanno la stessa domanda, ma nessuna risposta.La mailing list CurlPP è una zona morta e la sezione API del sito Web CurlPP è stata rotta per un anno.

È stato utile?

Soluzione

Ecco come ho finalmente fatto:

// HTTP response body (not headers) will be sent directly to this stringstream
std::stringstream response;

curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://www.example.com/" ) );
foo.setOpt( new curlpp::options::UserPwd( "blah:passwd" ) );
foo.setOpt( new curlpp::options::WriteStream( &response ) );

// send our request to the web server
foo.perform();
.

Una volta che foo.perform() restituisce, il corpo di risposta completo è ora disponibile nel flusso fornito in WriteStream().

Altri suggerimenti

Forse CrulPP è stato aggiornato dalla domanda.Sto usando questo che ho trovato in esempio04.cpp.

#include <curlpp/Infos.hpp>

long http_code = 0;
request.perform();
http_code = curlpp::infos::ResponseCode::get(request);
if (http_code == 200) {
    std::cout << "Request succeeded, response: " << http_code << std::endl;
} else {
    std::cout << "Request failed, response: " << http_code << std::endl;
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top