Страница 1 из 1

Клиент cookie через curl

Добавлено: 17 авг 2024, 16:44
ya

Код: Выделить всё

sudo apt-get install libcurl4-openssl-dev

Код: Выделить всё

#include <iostream>
#include <string>
#include <curl/curl.h>

// Функция для обработки полученных данных
size_t WriteCallback(void* contents, size_t size, size_t nmemb, void* userp) {
    ((std::string*)userp)->append((char*)contents, size * nmemb);
    return size * nmemb;
}

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

    // Инициализация CURL
    curl = curl_easy_init();
    if(curl) {
        // Установите URL
        curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

        // Установите обработчик для полученных данных
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

        // Установите параметры для работы с cookie
        curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookies.txt"); // Файл для записи cookie
        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookies.txt"); // Файл для чтения cookie

        // Выполните запрос
        res = curl_easy_perform(curl);

        // Проверьте на наличие ошибок
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s
", curl_easy_strerror(res));
        }

        // Освобождаем ресурсы
        curl_easy_cleanup(curl);
    }

    // Выводим полученные данные
    std::cout << "Response data: " << readBuffer << std::endl;

    return 0;
}