我在具有异常处理的循环中执行以下代码。
using namespace boost::network;
http::client client;
http::client::request request("https://testserver.com/");
request << header("Connection", "close");
http::client::response response = client.get(request);
std::string strOutput = body(response);
代码运行良好,但是如果我禁用网络接口以测试我的软件以防网络故障,我会收到此错误,
在抛出 'boost::exception_detail::clone_impl >' 的实例后调用终止 what(): boost thread: 尝试加入自身: 避免资源死锁
我似乎无法捕捉到这个错误。此代码 24/7 执行状态检查,因此它很可能会找到出现网络错误的时间。最糟糕的是,它可能在第 1、2、3 次或第 4 次尝试后失败。我真的很想避免自己使用套接字实现 HTTP 协议套接字,但我可能需要这样做。有任何想法吗?