|
|
|
|
@@ -22,7 +22,8 @@ int debug_callback(CURL * handle, curl_infotype type, char * data, size_t size,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PRIVATE_DEFINITION_START(PIHTTPClient)
|
|
|
|
|
CURL * handle = nullptr;
|
|
|
|
|
CURL * handle = nullptr;
|
|
|
|
|
curl_slist * header_list = nullptr;
|
|
|
|
|
PRIVATE_DEFINITION_END(PIHTTPClient)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -46,6 +47,13 @@ bool PIHTTPClient::init() {
|
|
|
|
|
url.append('=');
|
|
|
|
|
url.append(ait.value().toPercentageEncoding());
|
|
|
|
|
}
|
|
|
|
|
headers.clear();
|
|
|
|
|
auto hit = request.headers().makeIterator();
|
|
|
|
|
while (hit.next()) {
|
|
|
|
|
headers << hit.key() + ": " + hit.value();
|
|
|
|
|
}
|
|
|
|
|
for (const auto & h: headers)
|
|
|
|
|
PRIVATE->header_list = curl_slist_append(PRIVATE->header_list, h.dataAscii());
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_WRITEDATA, this);
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_READDATA, this);
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_XFERINFODATA, this);
|
|
|
|
|
@@ -58,6 +66,7 @@ bool PIHTTPClient::init() {
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_HEADERFUNCTION, headerFunc);
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_URL, url.dataUTF8());
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_CUSTOMREQUEST, PIHTTP::methodName(request.method()));
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_HTTPHEADER, PRIVATE->header_list);
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_NOPROGRESS, 0L);
|
|
|
|
|
// curl_easy_setopt(PRIVATE->handle, CURLOPT_VERBOSE, 1L);
|
|
|
|
|
// curl_easy_setopt(PRIVATE->handle, CURLOPT_ERRORBUFFER, buffer_error.data());
|
|
|
|
|
@@ -66,6 +75,7 @@ bool PIHTTPClient::init() {
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_UPLOAD, 1L);
|
|
|
|
|
curl_easy_setopt(PRIVATE->handle, CURLOPT_INFILESIZE_LARGE, static_cast<curl_off_t>(request.body().size()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -91,8 +101,10 @@ void PIHTTPClient::perform() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// piCout << last_error;
|
|
|
|
|
if (PRIVATE->header_list) curl_slist_free_all(PRIVATE->header_list);
|
|
|
|
|
curl_easy_cleanup(PRIVATE->handle);
|
|
|
|
|
PRIVATE->handle = nullptr;
|
|
|
|
|
PRIVATE->handle = nullptr;
|
|
|
|
|
PRIVATE->header_list = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|