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服务发出请求
curl
的URLcurl
不会对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();
}