Я новичок в libcurl.
На данный момент мне нужно сделать запрос POST (curl --location --request POST 'url веб-сайта' --data-urlencode "userLogin" --data- urlencode 'userPassword') на веб-сайт, и мне нужно авторизоваться здесь, используя логин и пароль, и получить аутентификационную кухню ie в файл.
У меня есть повар ie, но я чувствую, что что-то не так Вот. Я не знаю, как проверить, авторизован ли я или нет, и не получал ли я ошибок в файле cook ie.
Я не получал никаких ошибок, а в заголовке я получил "200 OK" (не знаю, что это значит).
Я не получил никакой информации в переменной result (он пуст, это нормально?).
Вот мой код
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;
}
А вот и мой повар ie
<url> FALSE / FALSE 0 JBISESSIONID RNz5X7VWw5rEt4q5ifddghGGDGY5H1zvyNpugcUY6wz!-636659151