add progress information to request #13

This commit is contained in:
2019-07-07 14:49:54 +07:00
parent f9507e73a2
commit 8f1dad571f
3 changed files with 138 additions and 0 deletions

View File

@@ -58,6 +58,22 @@ namespace
}
};
class canceled_progressor : public net::progress_handler {
public:
canceled_progressor() = default;
float update(
std::size_t dnow, std::size_t dtotal,
std::size_t unow, std::size_t utotal) override
{
(void)dnow;
(void)dtotal;
(void)unow;
(void)utotal;
throw std::exception();
}
};
netex::promise<net::content_t> download(std::string url) {
return netex::make_promise<net::content_t>([
url = std::move(url)
@@ -673,6 +689,14 @@ TEST_CASE("curly") {
.send();
REQUIRE(req.wait() == net::req_status::canceled);
}
{
auto req = net::request_builder("https://httpbin.org/anything")
.verbose(true)
.method(net::http_method::GET)
.progressor<canceled_progressor>()
.send();
REQUIRE(req.wait() == net::req_status::canceled);
}
}
SECTION("callback") {