Здравствуйте. Делаю первое приложение с ннтр запросами.
Задача следующая: первым запросом post залогиниться
вторым запросом get получить json строку
Сервер на laravel при логине отдает куку laravel_session=блаблабла, которую нужно отсылать вторым запросом, однако второй запрос выдает страницу с ошибкой. Исподльзую QNetworkCookieJar в документации и везде в сети пишут что этот кукиджяр сам все делает, надо только его определить, что я и сделал по примерам из сети, но все равно не работает!
Если я вручную прописываю куку (закоменченная строка в коде ниже), то второй гет запрос отрабатывает нормально и я получаю вожделенную json строку. Подскажите, где у меня может быть ошибка? Уже весь мозг сломал. Вторую неделю мучаюсь и безрезультатно...
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkCookieJar *cookieJar = new QNetworkCookieJar(manager);
manager->setCookieJar(cookieJar);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(httpReply(QNetworkReply*)));
// первый запрос post
QNetworkRequest req(QUrl("http://example.com/index.php/login"));
req.setRawHeader(QByteArray("Host"), QByteArray("example.com"));
req.setHeader(QNetworkRequest::UserAgentHeader, QByteArray("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"));
req.setRawHeader(QByteArray("Accept"), QByteArray("text/html, application/xml;q=0.9, application/xhtml+xml, */*;q=0.1"));
req.setRawHeader(QByteArray("Referer"), QByteArray("http://example.com/index.php/login"));
req.setRawHeader(QByteArray("Connection"), QByteArray("Keep-Alive"));
req.setHeader(QNetworkRequest::ContentTypeHeader, QByteArray("application/x-www-form-urlencoded"));
req.setRawHeader(QByteArray("Content-length"), QByteArray("31"));
QByteArray postData;
postData = "login=boris_1&password=boris_1&";
manager->post(req, postData);
//второй запрос get
QNetworkRequest req1(QUrl("http://example.com/index.php/user_api/get_work"));
req1.setRawHeader(QByteArray("Host"), QByteArray("example.com"));
req1.setHeader(QNetworkRequest::UserAgentHeader, QByteArray("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"));
req1.setRawHeader(QByteArray("Accept"), QByteArray("text/html, application/xml;q=0.9, application/xhtml+xml, */*;q=0.1"));
req1.setRawHeader(QByteArray("Referer"), QByteArray("http://example.com/index.php"));
req1.setRawHeader(QByteArray("Connection"), QByteArray("Keep-Alive"));
req1.setHeader(QNetworkRequest::ContentTypeHeader, QByteArray("application/x-www-form-urlencoded"));
//req1.setRawHeader(QByteArray("Cookie"),
//QByteArray("laravel_session=eyJpdiI6IlV1K1hldjNDN3lDOVd1ejdSeFhpVmc9PSIsInZhbHVlIjoiVENqZTZGdUtPYjkwV3dmVFFHXC9cL2Zm
//QjBDWGowZFArWXZrVnRTNW5reng2aFk3cjRLNmhkcmRtOE9jNzdTZkw4enk2ZDAwVUpKRzRIN2JLQ0czRTRuZz09IiwibWFjIjoiMjY0ZWE2
//NGZkZGQ0YmMxNWQ5MDI1NDU2NmE3YTAxNGZjMjQ3MmIyZGI1NzY2MGM3N2Y2MDFlYzlmZmRjNzc5OSJ9"));
qDebug() << manager->cookieJar()->cookiesForUrl(QUrl("http://example.com/index.php/login")); // здесь выводятся пустые скобки ()
manager->get(req1);
void AppCore::httpReply(QNetworkReply *reply){
QString httpResponse = reply->readAll();
qDebug() << "Getting reply";
// Здесь куки выводятся
qDebug() << "Куки для ЮРЛ: " << reply->manager()->cookieJar()->cookiesForUrl(QUrl("http://example.com/index.php/login/test"));
}