C++ C++;14.CPP提交表格
我正在尝试使用提交表单。在自述文件中有一个如何发送表单请求的示例。这是我的密码:C++ C++;14.CPP提交表格,c++,libcurl,c++14,C++,Libcurl,C++14,我正在尝试使用提交表单。在自述文件中有一个如何发送表单请求的示例。这是我的密码: const std::string authenticityToken = stringMatch.substr(7, stringMatch.length()); curl::curl_form form; curl::curl_easy easy; // Forms creation curl::curl_pair<CURLformoption,std::string> nameForm(CURL
const std::string authenticityToken = stringMatch.substr(7, stringMatch.length());
curl::curl_form form;
curl::curl_easy easy;
// Forms creation
curl::curl_pair<CURLformoption,std::string> nameForm(CURLFORM_COPYNAME, "username");
curl::curl_pair<CURLformoption,std::string> nameCont(CURLFORM_COPYCONTENTS, "the username");
curl::curl_pair<CURLformoption,std::string> passForm(CURLFORM_COPYNAME, "password");
curl::curl_pair<CURLformoption,std::string> passCont(CURLFORM_COPYCONTENTS, "the password");
curl::curl_pair<CURLformoption,std::string> authForm(CURLFORM_COPYNAME,"authenticityToken");
curl::curl_pair<CURLformoption,std::string> authCont(CURLFORM_COPYCONTENTS, authenticityToken);
try {
// Form adding
form.add(nameForm, nameCont);
form.add(passForm, passCont);
form.add(authForm, authCont);
// Add some options to our request
easy.add<CURLOPT_URL>("https://account.mojang.com/login");
easy.add<CURLOPT_SSL_VERIFYPEER>(false);
easy.add<CURLOPT_FOLLOWLOCATION>(1L);
easy.add<CURLOPT_HTTPPOST>(form);
// Execute the request.
easy.perform();
} catch (curl::curl_easy_exception error) {
// If you want to get the entire error stack we can do:
curl::curlcpp_traceback errors = error.get_traceback();
// Otherwise we could print the stack like this:
error.print_traceback();
// Note that the printing the stack will erase it
}
const std::string authenticityToken=stringMatch.substr(7,stringMatch.length());
curl::curl_形式;
卷曲:卷曲容易;
//形式创造
curl::curl_pair nameForm(CURLFORM_COPYNAME,“用户名”);
curl::curl_pair nameCont(CURLFORM_copyconts,用户名);
curl::curl_pair passForm(CURLFORM_COPYNAME,“password”);
curl::curl_pair passCont(CURLFORM_COPYCONTENTS,“密码”);
curl::curl_pair authForm(CURLFORM_COPYNAME,“authenticityToken”);
curl::curl\u pair authCont(CURLFORM\u COPYCONTENTS,authenticityToken);
试一试{
//表格添加
表单。添加(名称表单,名称继续);
添加(passForm,passCont);
添加(authForm,authCont);
//为我们的请求添加一些选项
简单。添加(”https://account.mojang.com/login");
简单。添加(错误);
简单。添加(1L);
简单。添加(表单);
//执行请求。
简单。执行();
}catch(curl::curl\u easy\u异常错误){
//如果要获取整个错误堆栈,我们可以执行以下操作:
curl::curlcpp_traceback errors=error.get_traceback();
//否则,我们可以按如下方式打印堆栈:
错误。打印_回溯();
//请注意,打印堆栈会将其删除
}
我在编译时遇到此错误:
C:\Users\Czarek\ClionProjects\Learning\main.cpp: In function 'int main(int, const char**)':
C:\Users\Czarek\ClionProjects\Learning\main.cpp:40:40: error: no matching function for call to 'curl::curl_easy::add(curl::curl_form&)'
easy.add<CURLOPT_HTTPPOST>(form);
C:\Users\Czarek\ClionProjects\Learning\main.cpp:在函数“int main(int,const char**)”中:
C:\Users\Czarek\ClionProjects\Learning\main.cpp:40:40:错误:调用“curl::curl\u easy::add(curl::curl\u form&)”没有匹配的函数
简单。添加(表单);
现在,我按照github上概述的示例进行操作?我做错了什么?很明显,
curl\u easy
类没有任何版本的add()
接受curl\u表单
。看起来它只有add()变体用于curl选项。很明显,curl\u easy
类没有任何版本的add()
接受curl\u表单。看起来它只有add()变体是用于curlpoption的。我想出来了。事实证明,网站上的教程有点错误。easy.add(value)
函数接受curl\u httpost变量。要从curl\u表单
获取它,您必须执行form.get()
。但要将其传递给easy.add()
函数,必须使用const\u cast
删除常量。我相信这只是图书馆里的一个错误 我明白了。事实证明,网站上的教程有点错误。easy.add(value)
函数接受curl\u httpost变量。要从curl\u表单
获取它,您必须执行form.get()
。但要将其传递给easy.add()
函数,必须使用const\u cast
删除常量。我相信这只是图书馆里的一个错误好吧,我刚开始用C++,所以我不太确定在这里做什么。因为自述文件中的示例表明这是正确的方法。那么,我该如何正确地去做呢?好吧,我刚开始用C++,所以我不确定在这里做什么。因为自述文件中的示例表明这是正确的方法。那么,我该如何继续并正确地完成它呢?