如何向 WooCommerce API 发送请求

How to send a request to the WooCommerce API

本文关键字:请求 API WooCommerce      更新时间:2023-10-16

我目前正在为一家公司构建解决方案,我需要在我的C++项目中使用WooCommerce REST API功能将数据发送到网站。

到目前为止,经过 2 天漫长的痛苦,我已经设法安装了 cURL 库(通过 vcpkg),并使用您可以在互联网上找到的许多示例对库进行了一些测试。但就目前而言,我发现的内容似乎与WooCommerce人员在文档中的内容不符。 例如,在本节中,他们展示了如何使用cURL在平台上创建产品,但我无法理解如何在C++项目中将其翻译成cURL语言。哎呀,当我在命令提示符下使用它和我的参数时,该命令甚至不起作用。

#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

好的,我已经想通了,对于那些路过并且可能遇到与我相同的问题的人。您在终端和库中使用 cURL 执行的命令完全不同:

  • 在命令提示符下,您必须输入curl -X POST https://blablablabla
  • 在C++库中,您必须使用参数调用curl_easy_setopt()函数来指定请求的每个组件:CURLOPT_URL是您的主域,CURLOPT_POSTFIELDS是您要 POST 的数据,还有其他参数,例如CURLOPT_WRITEFUNCTIONCURLOPT_WRITE_DATA,...等,处理来自服务器的响应。

对我来说,这个例子真的很有用,我不知道我怎么会错过它:D感谢Jesper Juhl的建议,了解HTTP和HTTPS的工作原理至关重要。