--- a/src/HTTPClient.cpp Tue Mar 15 01:47:05 2022 +0100
+++ b/src/HTTPClient.cpp Tue Mar 15 23:22:00 2022 +0100
@@ -104,7 +104,7 @@
// set URL
curl_easy_setopt(impl->curl, CURLOPT_URL, request.url.c_str());
-
+
// set request headers
CurlList requestHeders;
for (size_t i = 0; i < request.headers.size(); i += 2) requestHeders.append(request.headers[i] + ": " + request.headers[i + 1]); // TODO: validate, no CR/LF...
@@ -129,15 +129,20 @@
});
// do HTTP call
- curl_easy_perform(impl->curl);
+ CURLcode result = curl_easy_perform(impl->curl);
+
+ if (result == CURLE_OK) {
- // response code and fill the result object
- curl_easy_getinfo(impl->curl, CURLINFO_RESPONSE_CODE, &response.responseCode);
- response.headers = impl->getResponseHeaders();
- response.body = impl->responseBody.str();
- impl->responseBody = std::stringstream();
+ // response code and fill the result object
+ curl_easy_getinfo(impl->curl, CURLINFO_RESPONSE_CODE, &response.responseCode);
+ response.headers = impl->getResponseHeaders();
+ response.body = impl->responseBody.str();
+ impl->responseBody = std::stringstream();
- return response;
+ return response;
+ } else {
+ throw Exception(curl_easy_strerror(result));
+ }
}