Как отправить запрос в API WooCommerce - PullRequest
0 голосов
/ 22 мая 2019

В настоящее время я создаю решение для компании-стажера, и мне нужно использовать функции REST API WooCommerce в моем проекте C ++ для отправки данных на веб-сайт.

До сих пор, после 2 долгих мучительных дней, мне удалось установить библиотеку cURL (через vcpkg) и немного протестировать библиотеку с помощью множества примеров, которые вы можете найти в Интернете. Но сейчас то, что я нашел, похоже, не совпадает с тем, что люди из WooCommerce помещают в свою документацию. Например, в этом разделе они показывают, как создать продукт на платформе с использованием cURL, но я не могу понять, как перевести его на язык cURL внутри проекта C ++. Черт, команда даже не работает, когда я использую ее в командной строке с моими параметрами.

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

// cUrl declaration 
    CURL* curl;
    CURLcode res;
    std::string readBuffer;
    std::string URL = "http://www.example.com";

    curl_global_init(CURL_GLOBAL_ALL);
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, URL);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
        res = curl_easy_perform(curl);

        // Check for errors
        if (res != CURLE_OK) {
            std::string error = "curl_easy_perform() failed: ";
            error += curl_easy_strerror(res);
            error += "\nImpossible de se connecter au site WooCommerce fourni. Veuillez verifier vos paramètres et redémarrer l'application.";
            wxMessageBox(error);
        }
        else {
            std::string success = "Connexion au domaine ";
            success += URL;
            success += " réussie.\nPour changer de domaine, veuillez consulter la page Paramètres.";
            wxMessageBox(success);
        }

    }

    // cleanup
    curl_easy_cleanup(curl);
    curl_global_cleanup();

Этот код работает нормально, я знаю, что мне нужно добавить сайт компании вместо примера, но я не могу понять, где добавить свой ключ клиента и секрет клиента (в основном, как в примере, показанном в документе WooCommerce. ). Основные команды cURL отлично работают в моей локальной командной строке, но пример не работает. Я знаю, что моя просьба о помощи может быть простой и легко решаемой, но я потратил последние два с половиной дня, работая над этим, и начинаю терять.

Спасибо за вашу помощь, я старался говорить на лучшем английском языке, который мог, поэтому заранее извиняюсь за любую опечатку или извините, если мой пост не соответствует стандартам презентации этой платформы, я вроде как новичок здесь: D

1 Ответ

0 голосов
/ 23 мая 2019

Хорошо, я понял это для тех, кто проходит мимо и может иметь ту же проблему, что и я.Команды, которые вы делаете с cURL в терминале и с библиотекой, совершенно разные:

  • В командной строке вы должны ввести curl -X POST https://blablablabla
  • В библиотеке C ++ выВы должны вызвать функцию curl_easy_setopt() с параметрами, чтобы указать каждый компонент запроса: CURLOPT_URL - это ваш основной домен, CURLOPT_POSTFIELDS - это данные, которые вы хотите POST, и есть другие параметры, такие как CURLOPT_WRITEFUNCTION, * 1011.*, ... и т. д., который обрабатывает ответ от сервера.

Для меня этот пример был действительно полезен, я не знаю, как я мог его пропустить: D Спасибо Jesper Juhl за совет, очень важно понять, как HTTP и HTTPS работает, чтобы понять это.

...