cpp-utils icon indicating copy to clipboard operation
cpp-utils copied to clipboard

大神,请教一下,使用C++ Rest SDK异步请求一个错误的地址,为什么捕获不到异常,而且程序会死机?

Open zhanMan opened this issue 7 years ago • 2 comments

void sendHTTP(std::string strurl) { try { std::wstring url = StringToWString(strurl); web::http::client::http_client_config client_config; client_config.set_timeout(std::chrono::seconds(10000)); web::http::client::http_client client(url, client_config); auto task = client.request(web::http::methods::POST); } catch (web::uri_exception) { std::cout << "uri_exception" << std::endl; } catch (web::json::details::json_error) { std::cout << "json_error" << std::endl; } catch (web::json::json_exception) { std::cout << "json_exception" << std::endl; } catch (web::web_proxy::web_proxy_mode) { std::cout << "web_proxy_mode" << std::endl; } catch (...) { std::cout << "sendHTTP error" << std::endl; }

// .then([](web::http::http_response resp) { // return resp.extract_string(); //}).then([](utility::string_t jsonStr) //{ // return jsonStr; //}); //task.wait(); //utility::string_t respStr = task.get(); }

int main() { while(true) { Sleep(10); std::string URL = "http://127.0.0.1:8080/test/test.go&data="+ URLEncode("{"row":[{"test":34,"test2" : 1}, {"test":34,"test2" : 1}]}");//网址不存在 sendHTTP(URL); } return 0; }

zhanMan avatar Feb 05 '18 08:02 zhanMan

@chxuan

zhanMan avatar Feb 05 '18 08:02 zhanMan

@zhanMan 异步接口肯定不能够通过try catch来捕获异常,你看看它异步返回值里面有没有什么参数可以说明返回失败了呢?

chxuan avatar Feb 13 '18 02:02 chxuan