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
删除常量。我相信这只是图书馆里的一个错误