--- a/src/HTTPClient.cpp Tue Mar 15 23:29:36 2022 +0100
+++ b/src/HTTPClient.cpp Tue Mar 15 23:43:02 2022 +0100
@@ -30,6 +30,7 @@
class HTTPClient::HTTPClientImpl {
public:
CURL* curl;
+ char curlErrorBuffer[CURL_ERROR_SIZE];
std::stringstream responseBody;
std::stringstream responseHeaders;
@@ -109,6 +110,9 @@
return r;
});
+ // set the error buffer
+ curl_easy_setopt(impl->curl, CURLOPT_ERRORBUFFER, impl->curlErrorBuffer);
+
return new HTTPClient(impl);
}
@@ -130,6 +134,9 @@
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...
curl_easy_setopt(impl->curl, CURLOPT_HTTPHEADER, requestHeders.getList());
+ // clear the error buffer
+ impl->curlErrorBuffer[0] = 0;
+
// do HTTP call
CURLcode result = curl_easy_perform(impl->curl);
@@ -143,7 +150,7 @@
return response;
} else {
- throw Exception(curl_easy_strerror(result));
+ throw Exception(curl_easy_strerror(result), impl->curlErrorBuffer);
}
}