42class HttpError :
public BESError {
43 CURLcode d_curl_code = CURLE_OK;
44 long d_http_status = 200;
45 std::string d_origin_url;
46 std::string d_redirect_url;
47 std::vector<std::string> d_response_headers;
48 std::string d_response_body;
51 HttpError() =
default;
53 HttpError(
const std::string &msg,
55 const long http_status,
56 const std::string &origin_url,
57 const std::string &redirect_url,
58 const std::vector<std::string> &response_headers,
59 const std::string &response_body,
60 const std::string &file,
62 BESError(msg, BES_HTTP_ERROR, file, line),
64 d_http_status(http_status),
65 d_origin_url(origin_url),
66 d_redirect_url(redirect_url),
67 d_response_headers(response_headers),
68 d_response_body(response_body) {};
70 HttpError(
const std::string &msg,
72 const long http_status,
73 const std::string &origin_url,
74 const std::string &redirect_url,
75 const std::string &file,
77 BESError(msg, BES_HTTP_ERROR, file, line),
79 d_http_status(http_status),
80 d_origin_url(origin_url),
81 d_redirect_url(redirect_url) {};
83 HttpError(std::string msg, std::string file,
unsigned int line) :
84 BESError(std::move(msg), BES_HTTP_ERROR, std::move(file), line) {}
86 HttpError(
const HttpError &src) =
default;
88 ~HttpError()
override =
default;
90 std::string origin_url()
const {
return d_origin_url; }
92 std::string redirect_url()
const {
return d_redirect_url; }
94 CURLcode curl_code()
const {
return d_curl_code; }
96 long http_status()
const {
return d_http_status; }
98 std::vector<std::string> response_headers()
const {
return d_response_headers; }
100 std::string response_body()
const {
return d_response_body; }
108 std::string
dump()
const;
118 void dump(std::ostream &strm)
const override {
122 std::string error_name()
const override {
return "HttpError"; }