我是libcurl的新手。
现在,我需要向网站提出POST请求(curl --location --request POST“网站url”-data-urlencode“ userLogin”-data-urlencode“ userPassword”),并且需要授权在这里使用登录名和密码,并将身份验证cookie放入文件中。
我有一个cookie,但是我觉得这里有些问题。我不知道如何检查我是否被授权以及cookie文件中没有任何错误。
我没有收到任何错误,并且在标题中我得到了“ 200 OK”(不知道那是什么意思)。
我没有得到可变结果中的任何信息(它是空的,可以吗?)。
这是我的代码
static size_t write_data(void* buffer, size_t size, size_t nmemb, void* param)
{
std::string& text = *static_cast<std::string*>(param);
size_t totalsize = size * nmemb;
text.append(static_cast<char*>(buffer), totalsize);
return totalsize;
}
int main()
{
std::string result;
CURL* curl;
CURLcode res;
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "http://someUrl");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "j_username=<login>&j_password=<password>");
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "authCookie.txt");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &result);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "CURL error: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
}
std::cout << "result: " << result << std::endl;
}
这是我的饼干
<url> FALSE / FALSE 0 JBISESSIONID RNz5X7VWw5rEt4q5ifddghGGDGY5H1zvyNpugcUY6wz!-636659151