Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 02.07.2023
Сообщений: 5

Как правильно отправить данные через POSTFIELDS при помощи CURL?

27.05.2024, 19:15. Показов 2946. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно отправить данные через POSTFIELDS при помощи CURL?
Если написать тот же самый код на Python, то он будет работать и сайт выдаёт ответ 200, но на C++ выдаёт ответ 400. Как я понял, проблема в postfields, хотя могу ошибаться
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <curl/curl.h>
 
size_t writeCallback(void* contents, size_t size, size_t nmemb, std::string* data) {
    data->append((char*)contents, size * nmemb);
    return size * nmemb;
}
 
int main() {
    setlocale(LC_CTYPE, "ru_RU.UTF-8");
    curl_global_init(CURL_GLOBAL_ALL);
 
    CURL* curl;
    CURLcode res;
    
    std::string text;
 
    struct curl_slist* list = NULL;
    list = curl_slist_append(list, "X-Requested-With: XMLHttpRequest");
    list = curl_slist_append(list, "Cookie: __ddg2_=0");
 
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "");
 
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &text);
 
        curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
 
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            return 1;
 
        std::string token = text.erase(0, text.find("<input type=\"hidden\" name=\"_xfToken\" value=\"") + 44);
        token = token.erase(token.find("\""), token.size());
        text = "";
 
        curl_easy_setopt(curl, CURLOPT_POST, 1);
        curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, "_xfToken=" + token + "&server=ru&id=26");
 
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            return 2;
 
        curl_easy_cleanup(curl);
    }
    curl_global_cleanup();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2024, 19:15
Ответы с готовыми решениями:

Отправить данные через curl
Всем привет! Пишу некий сервис. Клиент через curl отправляет на мой сервис пару файлов и набор параметров. Сервис их принимает и...

Как сделать GET запрос через прокси socks при помощи curl?
Вот код #define CURL_STATICLIB #include &quot;curl/curl.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using...

Не получается отправить данные post запросом через curl
Всем привет, с c++ имею дело первый день, с 10 утра устанавливал curl и вот только сейчас наконец получилось. Но теперь проблема с пост...

2
 Аватар для Azathtot
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
28.05.2024, 07:40
Sad0w, ну помятуя, что curl с std::string не дружит то
curl_easy_setopt(curl, CURLOPT_COPYPOSTFIELDS, ("_xfToken=" + token + "&server=ru&id=26").c_str());
а так все правильно.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
28.05.2024, 15:36
Цитата Сообщение от Azathtot Посмотреть сообщение
ну помятуя, что curl с std::string не дружит то
Оно ему неведомо.
Curl, намекает что это библиотека Си.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2024, 15:36
Помогаю со студенческими работами здесь

Как правильно спарсить нужные данные при помощи BeautifulSoup
Мне нужно спарсить данные о времени прочтения статьи на https://medium.com/tag/self-improvement/recommended. Не совсем понимаю, как...

Как правильно Отправить http заголовок в php curl?
Здравствуйте, помогите пожалуйста переделать запрос из curl в php curl Если ввести этот запрос просто в терминале сервера то придет...

При помощи curl передать уже набранные данные со своего компьютера в форму на сайте
Приветствую всех! Меня интересует такой вопрос Есть сайт с множествами полей для заполнение, можно ли сразу при помощи curl передать...

Данные из Excel отправить в БД Oracle при помощи SQL-запроса
Вот нашел тему, немного похожую на мою. Мне нужно данные из excel отправить в базу данных oracle при помощи sql-запроса, написанного в...

Как отправить переменную на сайт (php) через CURL С++
Если просто отправлять таким вот образом: string post; cout &lt;&lt; &quot;Введите текст&quot;; cin&gt;&gt; post; curl_easy_setopt(curl,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru