@qooke

Как корректно передать base64 post запросом на с++ используя библиотеку curl?

Я выполняю post запрос файлу index.php <?php echo $_POST["body"] ?>
На с++ используя либу curl.
Если подставить просто строку "body=123" - то результат будет положительным.
Если подставить нужный мне base64 код - запрос ломается
5cb6131c0cdb2609492695.png

Вот кусок кода
5cb61353b9806043055972.png

Помогите решить проблему пожалуйста
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
myjcom
@myjcom Куратор тега C++
https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);

curl_easy_setopt is used to tell libcurl how to behave. By setting the appropriate options, the application can change libcurl's behavior. All options are set with an option followed by a parameter. That parameter can be a long, a function pointer, an object pointer or a curl_off_t, depending on what the specific option expects

curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str());


На с++ используя либу curl.

есть C++ libcurl bindings

исходники curl_easy_setopt обертка над
static CURLcode vsetopt(struct Curl_easy *data, CURLoption option, va_list param)


в которой ваша std::string postData превращается в тыкву
case CURLOPT_POSTFIELDS:
    /*
     * Like above, but use static data instead of copying it.
     */
    data->set.postfields = va_arg(param, void *); // Тут <-----------------------<<<<
    /* Release old copied data. */
    (void) Curl_setstropt(&data->set.str[STRING_COPYPOSTFIELDS], NULL);
    data->set.httpreq = HTTPREQ_POST;
    break;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы