src/HTTPClient.cpp
branchv_0
changeset 9 9fdbfbe24161
parent 7 0b0374746e48
child 10 479557122717
--- 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));
+	}
 }