如何向 WooCommerce 发送请求 API

How to send a request to the WooCommerce API

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

到目前为止,经过漫长痛苦的 2 天,我已经成功安装了 cURL 库(通过 vcpkg)并使用您可以在 Internet 上找到的许多示例对该库进行了一些测试。但就目前而言,我发现的内容似乎与 WooCommerce 的人员在其文档中输入的内容不符。 例如,在 this 部分,他们展示了如何使用 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 命令在我的本地命令提示符下运行良好,但示例不起作用。 我知道我的帮助请求可能有点简单而且很容易解决,但我只花了最后 2 天半的时间来解决这个问题,我开始失去它了。

感谢您的帮助,我已尽力说出最好的英语,如有任何打字错误,请提前致歉,如果我的 post 不符合该平台的演示标准,请见谅,我是新来的 :D

好的,我已经弄明白了,对于路过的人来说可能和我有同样的问题。您在终端和库中使用 cURL 执行的命令完全不同:

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

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