继续收到 400 Bad Request: invalid header name with the libcurl with the X-API-Key header

Keep getting 400 Bad Request: invalid header name with libcurl with the X-API-Key header

基本上,我只是想 运行 使用 libcurl 在我的 C++ 应用程序上执行此 curl 命令。

curl  http://127.0.0.1:8384/rest/events -H "X-API-Key: WuCS7KQtyoRxbWDZ4zsSbjUdU4T"

该命令在命令提示符下运行良好。但是当我尝试将它与 libcurl 一起使用时,我不断收到 400 Bad Request: invalid header name 错误。我浏览了其他几个类似的线程,但找不到解决方案。我现在真的束手无策了。 :( 间距和语法看起来不错....感谢您的帮助。

代码如下:

static size_t my_write( void* buffer, size_t size, size_t nmemb, void* param )
    {
        std::string& text = *static_cast< std::string* >( param );
        size_t totalsize = size * nmemb;
        text.append( static_cast< char* >( buffer ), totalsize );
        return totalsize;
    }
    int main()
    {
        std::string result;
        CURL* curl;
        CURLcode res;
        curl_global_init( CURL_GLOBAL_DEFAULT );
        curl = curl_easy_init();
        if ( curl ) 
        {
            curl_easy_setopt( curl, CURLOPT_URL, "http://127.0.0.1:8384/rest/events" );
            curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, my_write );
            curl_easy_setopt( curl, CURLOPT_WRITEDATA, &result );
            curl_easy_setopt( curl, CURLOPT_VERBOSE, 1L );
    
    
            struct curl_slist *header = NULL;
            header = curl_slist_append( header, "-H \"X-API-Key: WuCS7KQtyoRxbWDZ4zsSbjUdU4T\"" );

            curl_easy_setopt( curl, CURLOPT_HTTPHEADER, header );

            res = curl_easy_perform( curl );
            curl_easy_cleanup( curl );
        }
        curl_global_cleanup();
        std::cout << result << "\n\n";
    }

调用 curl_slist_append() 时不要包含 -H 开关。该开关仅适用于命令行 curl.exe 应用程序。它告诉应用程序 以下 数据应传递给 curl_slist_append().

改用这个:

curl_slist *header = curl_slist_append(NULL, "X-API-Key: WuCS7KQtyoRxbWDZ4zsSbjUdU4T");