comparison src/core/http.cc @ 175:9b10175be389

dep/json: update to v3.11.3 anime/db: save anime list to database, very much untested and likely won't work as intended
author Paper <mrpapersonic@gmail.com>
date Thu, 30 Nov 2023 13:52:26 -0500
parents f5940a575d83
children 53211cb1e7f5
comparison
equal deleted inserted replaced
174:f88eda79c60a 175:9b10175be389
1 #include "core/http.h" 1 #include "core/http.h"
2 #include "core/session.h" 2 #include "core/session.h"
3 #include <QByteArray> 3 #include <QByteArray>
4 #include <QMessageBox>
5 #include <curl/curl.h> 4 #include <curl/curl.h>
6 #include <string> 5 #include <string>
7 #include <vector> 6 #include <vector>
7 #include <iostream>
8 8
9 namespace HTTP { 9 namespace HTTP {
10 10
11 static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userdata) { 11 static size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userdata) {
12 reinterpret_cast<QByteArray*>(userdata)->append(reinterpret_cast<char*>(contents), size * nmemb); 12 reinterpret_cast<QByteArray*>(userdata)->append(reinterpret_cast<char*>(contents), size * nmemb);
29 /* Use system certs... useful on Windows. */ 29 /* Use system certs... useful on Windows. */
30 curl_easy_setopt(curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA); 30 curl_easy_setopt(curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA);
31 CURLcode res = curl_easy_perform(curl); 31 CURLcode res = curl_easy_perform(curl);
32 session.IncrementRequests(); 32 session.IncrementRequests();
33 curl_easy_cleanup(curl); 33 curl_easy_cleanup(curl);
34 if (res != CURLE_OK) { 34 if (res != CURLE_OK)
35 QMessageBox box(QMessageBox::Icon::Critical, "", 35 std::cerr << "curl_easy_perform(curl) failed!: " << curl_easy_strerror(res) << std::endl;
36 QString("curl_easy_perform(curl) failed!: ") + QString(curl_easy_strerror(res)));
37 box.exec();
38 }
39 } 36 }
40 return userdata; 37 return userdata;
41 } 38 }
42 39
43 QByteArray Post(const std::string& url, const std::string& data, const std::vector<std::string>& headers) { 40 QByteArray Post(const std::string& url, const std::string& data, const std::vector<std::string>& headers) {
57 /* Use system certs... useful on Windows. */ 54 /* Use system certs... useful on Windows. */
58 curl_easy_setopt(curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA); 55 curl_easy_setopt(curl, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NATIVE_CA);
59 CURLcode res = curl_easy_perform(curl); 56 CURLcode res = curl_easy_perform(curl);
60 session.IncrementRequests(); 57 session.IncrementRequests();
61 curl_easy_cleanup(curl); 58 curl_easy_cleanup(curl);
62 if (res != CURLE_OK) { 59 if (res != CURLE_OK)
63 QMessageBox box(QMessageBox::Icon::Critical, "", 60 std::cerr << "curl_easy_perform(curl) failed!: " << curl_easy_strerror(res) << std::endl;
64 QString("curl_easy_perform(curl) failed!: ") + QString(curl_easy_strerror(res)));
65 box.exec();
66 }
67 } 61 }
68 return userdata; 62 return userdata;
69 } 63 }
70 64
71 } // namespace HTTP 65 } // namespace HTTP