Название: QNetworkAccessManager[РЕШЕНО] Отправлено: Trollolo от Апрель 08, 2012, 11:01 Имеется Qlineedit в которой вводится адрес сайта
послев одной из функций: QUrl urlsite(HttpAdd->text()); request.setUrl(urlsite); // request - QNetworkRequest request.setRawHeader("User-Agent", "mozzila 5.0"); Zapros = manager->get(request); // Zapros - QNetworkReply connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(getUrl(QNetworkReply*))); В слоте geturl: WindowResult->setText(QString::fromUtf8(reply->readAll())); manager->deleteResource(request); Проблема вот в чем: после второго запуска это куска кода окно WindowResult (это QTextEdit) остается пустым. Что делать? Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 12:21 проверь reply на ошибку - может ответ не пришел
Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 12:31 проверь reply на ошибку - может ответ не пришел Пробовал, ошибок нет.Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 12:37 второй запуск - имеется в виду второй запуск приложения или второй вход в первый метод?
Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 12:38 второй запуск - имеется в виду второй запуск приложения или второй вход в первый метод? Второй вход в первый методНазвание: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 12:42 так происходит с запросом на любой урл или только на определенный?
Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 12:43 Вот скрины для полного понимания
Название: Re: QNetworkAccessManager Отправлено: kambala от Апрель 08, 2012, 12:44 manager->deleteResource(request); - а это зачем? тебе действительно надо слать DELETE запрос?
ответ (то, что у тебя по какой-то непонятной причине находится в переменной Zapros) надо удалять через delete в getUrl() для оформления кода используется тег code правильно пишется не "mozzila", а "mozilla" з.ы. ты нас случайно не троллишь, судя по нику? :D Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 12:46 manager->deleteResource(request); - а это зачем? тебе действительно надо слать DELETE запрос? Я просто пытался ошибку найтиЦитата: kambala ответ (то, что у тебя по какой-то непонятной причине находится в переменной Zapros) надо удалять через delete в getUrl() Не тролю))для оформления кода используется тег code правильно пишется не "mozzila", а "mozilla" з.ы. ты нас случайно не троллишь, судя по нику? :D Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 12:52 manager->deleteResource(request); - а это зачем? тебе действительно надо слать DELETE запрос? Я просто пытался ошибку найтиМагией занимаешься, да?))) я так понял, что сервер у тебя локально стоит. А он на второй запрос отвечает? Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 13:04 manager->deleteResource(request); - а это зачем? тебе действительно надо слать DELETE запрос? Я просто пытался ошибку найтиМагией занимаешься, да?))) я так понял, что сервер у тебя локально стоит. А он на второй запрос отвечает? Название: Re: QNetworkAccessManager Отправлено: kambala от Апрель 08, 2012, 13:09 попробуй request не хранить полем класса, а создавать прямо перед выполнением запроса
Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 13:10 Да, стоит. Проблема вы том, что после первого запроса - на любой юрл такая реакция. выложи сюда минимальный пример, в котором ошибка повторяется Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 13:22 попробуй request не хранить полем класса, а создавать прямо перед выполнением запроса не получилосьНазвание: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 13:28 Да, стоит. Проблема вы том, что после первого запроса - на любой юрл такая реакция. выложи сюда минимальный пример, в котором ошибка повторяется Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 13:34 Да, стоит. Проблема вы том, что после первого запроса - на любой юрл такая реакция. выложи сюда минимальный пример, в котором ошибка повторяется Нет не такой... убери из своего проекта все лишнее, оставь только кусок в котором повторяется ошибка и выложи сюда, чтобы можно было скачать и у себя попробовать Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 13:49 Да, стоит. Проблема вы том, что после первого запроса - на любой юрл такая реакция. выложи сюда минимальный пример, в котором ошибка повторяется Нет не такой... убери из своего проекта все лишнее, оставь только кусок в котором повторяется ошибка и выложи сюда, чтобы можно было скачать и у себя попробовать Название: Re: QNetworkAccessManager Отправлено: mutineer от Апрель 08, 2012, 13:58 .pro файл видимо религия непозволила выложить...
беглый осмотр показал: первое нажатие - getUrl вызывается один раз второе нажатие - getUrl вызывается два раза третье нажатие - getUrl вызывается три раза и так далее З.Ы. QWebView не хочешь использовать для отображения страницы? З.Ы.Ы перенес connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(getUrl(QNetworkReply*))); в конструктор окна - все стало нормально. странно Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 14:08 .pro файл видимо религия непозволила выложить... Спасибо! сейчас попробую в полной версиибеглый осмотр показал: первое нажатие - getUrl вызывается один раз второе нажатие - getUrl вызывается два раза третье нажатие - getUrl вызывается три раза и так далее З.Ы. QWebView не хочешь использовать для отображения страницы? З.Ы.Ы перенес connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(getUrl(QNetworkReply*))); в конструктор окна - все стало нормально. странно P.S. QWebView ненужен, я просто для видимости себе вывожу, программа вообще другим занимается))) Название: Re: QNetworkAccessManager Отправлено: Trollolo от Апрель 08, 2012, 14:12 Да , работает! Всем спасибо за помощь!!! ;D
Название: Re: QNetworkAccessManager[РЕШЕНО] Отправлено: mutineer от Апрель 08, 2012, 14:59 странно, мне казалось что повторный коннект не должен ничего делать
перчитал доку. действительно если сделать два коннекта, то будет два раза слот вызываться |