-
-
Save whoshuu/2dc858b8730079602044 to your computer and use it in GitHub Desktop.
#include <curl/curl.h> | |
#include <string> | |
size_t writeFunction(void *ptr, size_t size, size_t nmemb, std::string* data) { | |
data->append((char*) ptr, size * nmemb); | |
return size * nmemb; | |
} | |
int main(int argc, char** argv) { | |
auto curl = curl_easy_init(); | |
if (curl) { | |
curl_easy_setopt(curl, CURLOPT_URL, "https://api.github.com/repos/whoshuu/cpr/contributors?anon=true&key=value"); | |
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); | |
curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"); | |
curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.42.0"); | |
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 50L); | |
curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L); | |
std::string response_string; | |
std::string header_string; | |
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction); | |
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string); | |
curl_easy_setopt(curl, CURLOPT_HEADERDATA, &header_string); | |
char* url; | |
long response_code; | |
double elapsed; | |
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code); | |
curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &elapsed); | |
curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &url); | |
curl_easy_perform(curl); | |
curl_easy_cleanup(curl); | |
curl = NULL; | |
} | |
} |
If curl_easy_perform
fails with the code CURL_SSL_CACERT
, consider adding curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE)
, but beware this makes your app less secure, and the proper solution is to set CURLOPT_CAINFO
Suggest you switch the condition, writing:
if (not curl) { exit 1; } // or EXIT_FAILURE
so the rest of the code doesn't need the indentation and our brain stack can be empty.
can any body help me to run this code?
خطأ لم يعرف int main()
#include <curl/curl.h>//هاذا هو الصحيح
#include
#include
// دالة لتخزين استجابة السيرفر في متغير
size_t writeFunction(void* ptr, size_t size, size_t nmemb, std::string* data) {
data->append((char*)ptr, size * nmemb);
return size * nmemb;
}
int main() {
// تهيئة curl
CURL* curl = curl_easy_init();
if (curl) {
// URL الذي تريد الوصول إليه
const char* url = "https://api.github.com/repos/whoshuu/cpr/contributors?anon=true&key=value";
// إعداد الخيارات
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.42.0");
curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
// لتخزين الاستجابة
std::string response_string;
std::string header_string;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string);
// تنفيذ الطلب
CURLcode res = curl_easy_perform(curl);
// معالجة النتائج
if (res != CURLE_OK) {
std::cerr << "Curl failed: " << curl_easy_strerror(res) << std::endl;
} else {
long response_code;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
std::cout << "Response Code: " << response_code << std::endl;
std::cout << "Response Body: " << response_string << std::endl;
}
// تنظيف الموارد
curl_easy_cleanup(curl);
} else {
std::cerr << "Failed to initialize CURL" << std::endl;
}
return 0;
}
#include <curl/curl.h>
#include
#include
// دالة لتخزين استجابة السيرفر في متغير
size_t writeFunction(void* ptr, size_t size, size_t nmemb, std::string* data) {
data->append((char*)ptr, size * nmemb);
return size * nmemb;
}
int main() {
// تهيئة curl
CURL* curl = curl_easy_init();
if (curl) {
// URL الذي تريد الوصول إليه
const char* url = "https://api.github.com/repos/whoshuu/cpr/contributors?anon=true&key=value";
// إعداد الخيارات
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.42.0");
curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
// لتخزين الاستجابة
std::string response_string;
std::string header_string;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_string);
// تنفيذ الطلب
CURLcode res = curl_easy_perform(curl);
// معالجة النتائج
if (res != CURLE_OK) {
std::cerr << "Curl failed: " << curl_easy_strerror(res) << std::endl;
} else {
long response_code;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
std::cout << "Response Code: " << response_code << std::endl;
std::cout << "Response Body: " << response_string << std::endl;
}
// تنظيف الموارد
curl_easy_cleanup(curl);
} else {
std::cerr << "Failed to initialize CURL" << std::endl;
}
return 0;
}
Hello from ISy28, 2 sem!!!
yep it did