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

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

27.05.2024, 19:15. Показов 2923. Ответов 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
Заблокирован
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
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru