fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <curl/curl.h>
  4.  
  5. static size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *s) {
  6. size_t newLength = size * nmemb;
  7. try {
  8. s->append((char*)contents, newLength);
  9. } catch(std::bad_alloc &e) {
  10. // handle memory problem
  11. return 0;
  12. }
  13. return newLength;
  14. }
  15.  
  16. int main() {
  17. CURL *curl;
  18. CURLcode res;
  19. std::string readBuffer;
  20.  
  21. curl_global_init(CURL_GLOBAL_DEFAULT);
  22. curl = curl_easy_init();
  23.  
  24. if (curl) {
  25. curl_easy_setopt(curl, CURLOPT_URL, "https://a...content-available-to-author-only...d.name/ru/freeproxy?type=socks5");
  26. curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
  27. curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
  28.  
  29. // Отключение проверки SSL, если это необходимо (для самоподписанных сертификатов)
  30. // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
  31. // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
  32.  
  33. res = curl_easy_perform(curl);
  34.  
  35. if (res != CURLE_OK) {
  36. std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
  37. } else {
  38. std::cout << "Output: \n" << readBuffer << std::endl;
  39. }
  40.  
  41. curl_easy_cleanup(curl);
  42. }
  43.  
  44. curl_global_cleanup();
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0.02s 26012KB
stdin
Standard input is empty
stdout
#include <iostream>
#include <string>
#include <curl/curl.h>

static size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *s) {
    size_t newLength = size * nmemb;
    try {
        s->append((char*)contents, newLength);
    } catch(std::bad_alloc &e) {
        // handle memory problem
        return 0;
    }
    return newLength;
}

int main() {
    CURL *curl;
    CURLcode res;
    std::string readBuffer;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://a...content-available-to-author-only...d.name/ru/freeproxy?type=socks5");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        
        // Отключение проверки SSL, если это необходимо (для самоподписанных сертификатов)
        // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); 
        // curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

        res = curl_easy_perform(curl);

        if (res != CURLE_OK) {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        } else {
            std::cout << "Output: \n" << readBuffer << std::endl;
        }

        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}