Magento curl:使用c+中的post方法提交表单数据+; 我想用LIbCURL使用POST方法从C++向服务器提交一个简单的表单数据。怎么做

Magento curl:使用c+中的post方法提交表单数据+; 我想用LIbCURL使用POST方法从C++向服务器提交一个简单的表单数据。怎么做,magento,visual-c++,oauth,libcurl,Magento,Visual C++,Oauth,Libcurl,我的数据如下: Url : http://localhost/myproject/myadmin/oauth_authorize/index/ 发布数据如下: admin_parameters=form_key=slkjdkfjd&login[username]=sdfd&login[password]=ksjdkkfd&oauth_token=kdsjkfjdkfjd 我的卷曲代码: CURL *curl; CURLcode res;

我的数据如下:

Url : http://localhost/myproject/myadmin/oauth_authorize/index/
发布数据如下:

admin_parameters=form_key=slkjdkfjd&login[username]=sdfd&login[password]=ksjdkkfd&oauth_token=kdsjkfjdkfjd
我的卷曲代码:

        CURL *curl;
        CURLcode res;

        curl=curl_easy_init();
        if(curl)
        {
            curl_easy_setopt(curl,CURLOPT_URL,"http://localhost/myproject/myadmin/oauth_authorize/index/");

            curl_easy_setopt(curl,CURLOPT_POST,true);   
            curl_easy_setopt(curl,CURLOPT_POSTFIELDS,admin_parameters);

            res = curl_easy_perform(curl);
            if(res != CURLE_OK)
            {
                strError.Format("Error: Magento Admin Login Fails.: %s", res);
            }
            curl_easy_cleanup(curl);
        }
如何提交此数据并从服务器获得响应。请帮帮我。
高级感谢。

我也遇到过同样的问题,下面是解决方案

第一:您需要确保输入了准确的参数及其语法。您可以通过使用Chrome的“Inspect element”来完成,选择“Network”选项卡并向您的web服务发出请求

  • 从下图中,您应该使用“请求URL”作为
    curl
    的URL
  • 您的参数应与“表单数据”中的参数完全相同
  • 第二:默认情况下,
    curl
    不会对post数据进行任何编码。所以你必须自己做

    代码:

    void请求()
    {
    string formData=“您的纯文本表单数据”;
    //对表单数据进行编码
    字符串formDataEncoded=静态转换(formData);
    卷曲*卷曲;
    卷曲编码;
    curl\u global\u init(curl\u global\u ALL);
    curl=curl_easy_init();
    if(curl)
    {
    curl_easy_setopt(curl,CURLOPT_URL,“请求URL”);
    curl_easy_setopt(curl,CURLOPT_POST,1);
    curl_easy_setopt(curl,CURLOPT_POSTFIELDS,formDataEncoded.c_str());
    res=旋度(curl)\u容易执行(curl);
    如果(res!=卷曲(OK)
    {
    
    这在libcurl文档和示例中都能很好地解释吗。。。
    void request()
    {
        string formData = "Your form data in plain text";
    
        // Encode form data
        string formDataEncoded = static_cast<string>(formData);
    
        CURL *curl;
        CURLcode res;
    
        curl_global_init(CURL_GLOBAL_ALL);
    
        curl = curl_easy_init();
    
        if(curl)
        {
            curl_easy_setopt(curl, CURLOPT_URL, "Request URL");
            curl_easy_setopt(curl, CURLOPT_POST, 1);
            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, formDataEncoded.c_str());
            res = curl_easy_perform(curl);
    
            if(res != CURLE_OK)
            {
                cout << stderr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << endl;
            }
    
            curl_easy_cleanup(curl);
        }
    
        curl_global_cleanup();
    }