我有這個問題,每當我嘗試通過libcurls http post發送post_data1它說錯誤密碼,但是當我在post_data2中使用固定表達式時,它會將我記入日誌中。他們是完全相同的字符串..字符串轉換爲常量字符*問題
誰能告訴我爲什麼他們不一樣時,libcurl把它們放在頭中?或者爲什麼他們在我發送之前有所不同,如果是這樣的話。
string username = "mads"; string password = "123";
stringstream tmp_s;
tmp_s << "username=" << username << "&password=" << password;
static const char * post_data1 = tmp_s.str().c_str();
static const char * post_data2 = "username=mads&password=123";
std::cout << post_data1 << std::endl; // gives username=mads&password=123
std::cout << post_data2 << std::endl; // gives username=mads&password=123
// Fill postfields
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data1);
// Perform the request, res will get the return code
res = curl_easy_perform(curl);
你調試了你的代碼嗎? – 2013-03-01 10:22:06
我已經嘗試了兩個wireshark在Eclipse中查看數據包和調試模式以查看變量,但無法自己找到錯誤。 – typ0 2013-03-01 10:28:27
爲什麼wireshark?問題出在代碼中。使用valgrind(如果在Linux上)或適當的工具(在其他平臺上) – 2013-03-01 10:38:31