C++ 获取post响应时遇到的问题

C++ 获取post响应时遇到的问题,c++,curl,libcurl,C++,Curl,Libcurl,我正在尝试创建一个连接到服务器的基本登录程序,但当我尝试将post请求的响应保存到变量时,我根本不会得到响应,但如果我不尝试保存,我确实会得到响应,我不确定我做错了什么,任何帮助都将不胜感激,干杯 intpost(字符串str1、字符串str2、字符串str3){ string query=“user=“+str1+”&pass=“+str2; 卷曲*卷曲; 卷曲编码; curl=curl_easy_init(); if(curl){ curl\u easy\u setopt(curl,CURL

我正在尝试创建一个连接到服务器的基本登录程序,但当我尝试将post请求的响应保存到变量时,我根本不会得到响应,但如果我不尝试保存,我确实会得到响应,我不确定我做错了什么,任何帮助都将不胜感激,干杯

intpost(字符串str1、字符串str2、字符串str3){
string query=“user=“+str1+”&pass=“+str2;
卷曲*卷曲;
卷曲编码;
curl=curl_easy_init();
if(curl){
curl\u easy\u setopt(curl,CURLOPT\u URL,“http://www.vlone.cc/pwned.php");
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,query.c_str());
//当我注释掉这两行时,我会得到一个回复,否则我不会
curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,write\u to\u string);
curl_easy_setopt(curl、CURLOPT_WRITEDATA和str3);
res=旋度(curl)\u容易执行(curl);
旋度\轻松\清洁(旋度);
}
curl_global_cleanup();
返回0;
}
写入字符串

大小写入字符串(void*ptr、大小、大小计数、void*stream){
((字符串*)流)->追加((字符*)ptr,0,大小*计数);
返回大小*计数;
}

您可能在写回调中出错了。。。哪些代码没有显示在这里,所以我们无法真正分辨@DanielStenberg补充道:“我猜您正在将
&str3
传递到
curl\u easy\u setopt
。”。这是传递给
post
函数的参数副本的地址。当
post
返回时,该参数将不存在。如果您将
string*str3ptr
传递到
post
并将
strptr
传递到
curl\u easy\u setopt
并修改您的回调,它会工作得更好。@Adam.at.Epsilon现在我遇到了一个分段错误11@pwned您还必须修改回调函数。检查
curl\u easy\u setopt和
append
函数调用的类型正确性。或者使用图形调试器生成堆栈跟踪,如DDD(如果您在Linux上)。您可能在写回调中出错。。。哪些代码没有显示在这里,所以我们无法真正分辨@DanielStenberg补充道:“我猜您正在将
&str3
传递到
curl\u easy\u setopt
。”。这是传递给
post
函数的参数副本的地址。当
post
返回时,该参数将不存在。如果您将
string*str3ptr
传递到
post
并将
strptr
传递到
curl\u easy\u setopt
并修改您的回调,它会工作得更好。@Adam.at.Epsilon现在我遇到了一个分段错误11@pwned您还必须修改回调函数。检查
curl\u easy\u setopt和
append
函数调用的类型正确性。或者,如果您在Linux上,可以使用图形调试器生成stacktrace,如DDD。