c++

c++ post请求如何携带数据

小樊
95
2024-07-15 23:40:53
栏目: 编程语言

要在c++中进行POST请求并携带数据,可以使用第三方库如curl或者使用内置的库如WinHttp。以下是使用curl库进行POST请求并携带数据的示例代码:

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

size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* data)
{
    data->append((char*)contents, size * nmemb);
    return size * nmemb;
}

int main()
{
    CURL* curl;
    CURLcode res;
    std::string postData = "key1=value1&key2=value2"; // 要携带的数据

    curl_global_init(CURL_GLOBAL_ALL);
    curl = curl_easy_init();
    if(curl)
    {
        curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/api"); // 设置请求的URL
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str()); // 设置要携带的数据
        curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, postData.length()); // 设置数据长度
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); // 设置回调函数
        std::string response;
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // 设置回调函数的数据

        res = curl_easy_perform(curl);
        if(res != CURLE_OK)
        {
            std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
        }
        else
        {
            std::cout << "Response: " << response << std::endl;
        }

        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();

    return 0;
}

在上面的示例代码中,首先初始化curl库,然后设置请求的URL和要携带的数据,设置回调函数用于接收服务器响应的数据,最后执行请求并输出服务器响应的数据。

0
看了该问题的人还看了