В настоящее время я разрабатываю решение для компании в качестве стажера, и мне нужно использовать функции WooCommerce REST API в моем проекте 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 отлично работают в моей локальной командной строке, но пример не работает. Я знаю, что моя просьба о помощи может быть довольно простой и легко решаемой, но я только что провел последние 2 с половиной дня, работая над этим, и я начинаю терять его.
Спасибо за вашу помощь, я старался говорить по-английски как можно лучше, поэтому заранее извините за любую опечатку или извините, если мой пост не соответствует стандартам презентации этой платформы, я здесь новичок: D
Я читал об этом, как вы мне сказали, и я думаю, что понял, как это работает. Подводя итог, я знаю, что мне нужно отправить запрос (типа GET, POST, DELETE и т. д.), как это делается в документации. Но есть какой-то прогресс: сегодня утром, когда я попробовал еще раз, программа скомпилировалась, но curl выдал мне эту ошибку: «Неподдерживаемый протокол».





Ок, я разобрался, для тех, кто проходит мимо и может иметь такую же проблему, как и у меня. Команды, которые вы выполняете с помощью cURL в терминале и в библиотеке, совершенно разные:
curl -X POST https://blablablablacurl_easy_setopt() с параметрами, чтобы указать каждый компонент запроса: CURLOPT_URL — ваш основной домен, CURLOPT_POSTFIELDS — данные, которые вы хотите отправить, и есть другие параметры, такие как CURLOPT_WRITEFUNCTION, CURLOPT_WRITE_DATA,.. и т. д., который обрабатывает ответ от сервера.Для меня этот пример был действительно полезен, я не знаю, как я мог его пропустить :D Спасибо Jesper Juhl за совет, очень важно понять, как работают HTTP и HTTPS, чтобы понять это.
Возможно, вам стоит немного почитать про HTTP в дополнение к самому curl :)