X-Git-Url: http://git.tdb.fi/?p=libs%2Fnet.git;a=blobdiff_plain;f=examples%2Fhttpget.cpp;h=a4314cef6e3ec12ee83114d36f3e6bd0a823ae71;hp=70942b7647ffb0bcbdff535e902af0305eadb2ba;hb=cb31bf0d3670e8a2a1d37306a041a9f1fd558e6a;hpb=5b161886744ecbf3960ffe6ee5601df6d4a217ce diff --git a/examples/httpget.cpp b/examples/httpget.cpp index 70942b7..a4314ce 100644 --- a/examples/httpget.cpp +++ b/examples/httpget.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -18,6 +19,8 @@ public: HttpGet(int, char **); virtual int main(); +private: + void socket_error(const exception &); }; HttpGet::HttpGet(int argc, char **argv): @@ -37,6 +40,7 @@ HttpGet::HttpGet(int argc, char **argv): int HttpGet::main() { Http::Client client; + client.signal_socket_error.connect(sigc::mem_fun(this, &HttpGet::socket_error)); if(verbose) { @@ -45,14 +49,25 @@ int HttpGet::main() IO::print(client.get_request()->str()); client.wait_response(); const Http::Response *response = client.get_response(); - IO::print("=== Got response ===\n"); - IO::print(response->str()); + if(response) + { + IO::print("=== Got response ===\n"); + IO::print(response->str()); + } } else { const Http::Response *response = client.get_url(url); - IO::print(response->get_content()); + if(response) + IO::print(response->get_content()); } return 1; } + +void HttpGet::socket_error(const exception &e) +{ + IO::print("=== Error ===\n"); + IO::print("%s\n", Debug::demangle(typeid(e).name())); + IO::print("%s\n", e.what()); +}