Название: [Решено] QNetworkAccessManager и QNetworkCookieJar Отправлено: ieroglif от Июнь 26, 2010, 12:50 есть у меня несколько (два :) ) вопросов:
1. сравнение QNetworkAccessManager и QHttp. второй меня радовал в своё время тем, что каждый ответ можно было чётко идентифицировать с запросом по id. В первом же до сих пор не могу понять как это делается. Ответ пришёл, а откуда? Есть, вроде, QNetworkRequest QNetworkReply::request(); однако у меня не получилось пока с ним работать. Попытка была простой - перез запросом я сохранял свой request в QList, а при получении ответа пытался сравнить list и reply->request() однако совпадать они не пожелали (хотя запрос всего один и никуда не денешься по идее). Так что вопрос: как чётко соотносить reply с request? 2. QNetworkCookieJar. Сохранить его никак у меня не получилось, вытащить оттуда все куки каким-нить удобным методом - тоже. А я обращаюсь к одному и тому же сайту под разными логинами, так что управление куками для меня обязательно (не надо меня обвинять в спамописательстве - спам не пишу, а чего пишу - не важно ;) ). Пока решил проблему "руками" - разбирая присланные куки и так же их сохраняя. Однако мне это как-то не нравится. Есть другие варианты? Название: Re: QNetworkAccessManager и QNetworkCookieJar Отправлено: SABROG от Июнь 26, 2010, 13:35 Я объявляю массив QHash<QNetworkReply*, MyStruct>, в MyStruct помещаю всю необходимую информацию такую как запрашиваемый (базовый) Url до редиректов и т.п., время запуска запроса, хендлер на открытый файл для записи контента, количество попыток получить желаемую страницу и тому пдобную информацию.
QNetworkCookieJar нужно наследовать, чтобы получить доступ к QList<QNetworkCookie> QNetworkCookieJar::allCookies () const [protected], потом просто поставишь свой класс через void QNetworkAccessManager::setCookieJar ( QNetworkCookieJar * cookieJar ). Название: Re: QNetworkAccessManager и QNetworkCookieJar Отправлено: serg_hd от Июнь 26, 2010, 13:38 Да, по второму вопросу всё просто:
.h: Код
.cpp: Код
У себя в проге сохраняю кукизы в БД (sqlite) когда надо и когда надо извлекаю. Всё в отдельных потоках, работает как часы, никаких проблем. Название: Re: QNetworkAccessManager и QNetworkCookieJar Отправлено: ieroglif от Июнь 26, 2010, 13:56 спасибо. таких подробных ответов даже не ожидал :)
Название: Re: [Решено] QNetworkAccessManager и QNetworkCookieJar Отправлено: serg_hd от Июнь 26, 2010, 17:11 и в то же время не совсем понятно зачем методы allCookies и setAllCookies - protected.
Хз, удобно было бы их юзать как public, чем наследовать ради них QNetworkCookieJar. Название: Re: [Решено] QNetworkAccessManager и QNetworkCookieJar Отправлено: thechicho от Сентябрь 30, 2011, 09:09 Цитировать У себя в проге сохраняю кукизы в БД (sqlite) когда надо и когда надо извлекаю. Всё в отдельных потоках, работает как часы, никаких проблем. Поделитесь кодом, плиз. Или готов купить его, т.к. сам застрял на работе с куками (запись в файл, дальнейшее считывание и "хождение" по сайту с ними), а реализация многопоточности для меня вообще жестью будет (не было опыта работы с ней) |