powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / [QT] как организовать докачку файлов?
48 сообщений из 48, показаны все 2 страниц
[QT] как организовать докачку файлов?
    #38835685
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
организовал скачку файлов.
вот код который производит запись в файл.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 QFile *file = new QFile("C:/qt/"+str);
        if(file->open(QFile::ReadWrite))
        {
            file->write(reply->readAll());
            file->flush();
            file->close();
        }
        delete file;
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38835751
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо как сделать чтоб вот тут
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
QFile *file = new QFile("C:/qt/"+str);
        if(file->open(QFile::ReadWrite))
        {
            file->write(reply->readAll());
            file->flush();
            file->close();
        }
        delete file;



программа получала данные по байтам а не все сразу?
сделал так но это неправильно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 qint64 fs=file->size();
            qint64 rs=reply->size();
            qint64 i=fs;
            while (i<=rs){
                char data[1];

                reply->read(data,1);    
                file->write(data);
                file->flush();
                i=i+1;
            }
            file->close();
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38835916
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник, можно читать блоками через ::read(char * data, qint64 maxSize)
а обработку делать по байтам.

Или тебе другое надо?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836348
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
мне именно это и надо.а в этом коде видимо что то не так сделал? если прочитал правильно,значит записал неправильно
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836355
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежникв этом коде видимо что то не так сделал?
Да в общем-то практически всё не так. Позиционирования на конец файла - нет. Запроса
только недостающей части - нет. Конечный размер определяется неправильно. А за запись по
одному байту вообще надо руки отрывать до самой задницы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836361
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем QFile через new создаётся, а чуть ниже удаляется? Это ж потенциально может привести к утечке памяти, если между созданием и удалением возникнет исключение. Пользуйтесь хотя бы умными указателями.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836368
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

по 1 байту - это для проверки. на конец файла будет следующий этап. я же сверху писал что хочу организовать запись побайтно.а там был пример который считывает полностью и записывает полностью.после того как удастся сделать это буду уже к следующему этапу, там будет проверка целостности файла и т.д.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836375
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NekZА зачем QFile через new создаётся, а чуть ниже удаляется? Это ж потенциально может привести к утечке памяти, если между созданием и удалением возникнет исключение. Пользуйтесь хотя бы умными указателями.
вопрос был о том сделать считывание и запись по байтам, а не про утечку памяти)))
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836395
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник, вычитывание файла по байтам это "фасад". Реально файло читается блоками.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836409
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

ок спс понятно. ну поменять цифру 1 будет не сложно думаю. вообщем поменял на 8. пытаюсь считать простой текстовой файл. и все равно не то. структура файла вроде правильная.а вот символы не те
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836419
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не спец в Qt. Но вроде текстовые данные читаются через QTextStream. И обрати внимание на setCodec(..)

http://qt-project.org/doc/qt-4.8/qtextstream.html
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836421
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ не спец в Qt. Но вроде текстовые данные читаются через QTextStream. И обрати внимание на setCodec(..)

http://qt-project.org/doc/qt-4.8/qtextstream.html
я текстовой файл взял тоже для начала.на самом деле мне нужно будет скачивать бинарные файлы.они тоже не правильно записываются. почему то размер получается больше чем исходный
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836422
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда почему ты решил что символы "не те" ? Как догадался?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836424
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
исходный
Код: sql
1.
2.
3.
4.
5.
User-agent: *
Disallow: /cabinet/
Disallow: /test/
Sitemap: http://kz-test.besaba.com/sitemap.xml
Host: kz-test.besaba.com/



результат
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
User-ageyT§хёЦnt: *
DyT§хёЦisallow:yT§хёЦ /cabineyT§хёЦt/
DisayT§хёЦllow: /tyT§хёЦest/
SiyT§хёЦtemap: hyT§хёЦttp://kzyT§хёЦ-test.beyT§хёЦsaba.comyT§хёЦ/sitemapyT§хёЦ.xml
HoyT§хёЦst: kz-tyT§хёЦest.besayT§хёЦba.com/
yT§хёЦ
a.com/
yT§хёЦ
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836437
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник,

все разобрался вместо write(data) надо write(data,len)
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836487
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все получилось
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 QFile *file=new QFile("C:/qt/"+str);
        if(file->open(QFile::ReadWrite)){
            qint64 fs=file->size();
            qint64 rs=reply->size();
            qint64 i=fs;
            int n=8;
            while (i<=rs){
                char data[8];
                if(rs-i<8)n=rs-i;
                reply->read(data,n);
                file->write(data,n);
                file->flush();
                i=i+8;
            }
            file->close();
        }
        delete file;


еще вопрос какой оптимальный размер лучше поставить для считывания
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836514
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежниквсе получилось
Угу. Только одна мелочь: ты каждый раз перекачиваешь весь файл заново вместо того чтобы
докачать только недостающее. Ну да скорость немеряна, траффик не считанный, а программист...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836601
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

еще раз повторяю здесь я сделал всего лишь запись побайтно.остальное я буду делать сам
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836661
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКартежниквсе получилось
Угу. Только одна мелочь: ты каждый раз перекачиваешь весь файл заново вместо того чтобы
докачать только недостающее. Ну да скорость немеряна, траффик не считанный, а программист...

а в каком месте написано что я каждый раз перекачиваю весь файл?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836886
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежника в каком месте написано что я каждый раз перекачиваю весь файл?

Вот ты видишь указание HTTP серверу с какого байта начинать выдачу?.. И его нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836891
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКартежника в каком месте написано что я каждый раз перекачиваю весь файл?

Вот ты видишь указание HTTP серверу с какого байта начинать выдачу?.. И его нет.

а это не то?
Код: plaintext
1.
2.
3.
4.
5.
qint64 fs=file->size();
            qint64 rs=reply->size();
            qint64 i=fs;
            int n=8;
            while (i<=rs){
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836897
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получается в данном случае он все равно получает весь файл,а только потом обрабатывает откуда читать и т.д.?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836898
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а понял. там нужно использовать seek() ? или в данном случае все равно получится что весь файл скачаю, и с него уже будет считываться информация с нужного места?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836919
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежника это не то?
А это вообще полная чушь, дающая весьма забавные спецэффекты о которых я не хочу
спойлерить. "Сурпрайз будет..." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836925
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКартежника в каком месте написано что я каждый раз перекачиваю весь файл?

Вот ты видишь указание HTTP серверу с какого байта начинать выдачу?.. И его нет.


на http сервере есть команда которая указыывает ему с какого байта выдавать инфу?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38836955
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сперва делаю вот так читаю до поливины.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 QFile *file=new QFile("C:/qt/"+str);
        if(file->open(QFile::ReadWrite)){
            qint64 fs=file->size();
            qint64 rs=reply->size();
            qint64 i=fs;
            int n=8;
            char data[8];
            reply->seek(fs);
            file->seek(fs);
            while (i<=rs/2){
                if(rs-i<8)n=rs-i;
                reply->read(data,n);
                file->write(data,n);
                file->flush();
                i=i+8;
            }
            file->close();
        }



затем делаю вот так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 QFile *file=new QFile("C:/qt/"+str);
            if(file->open(QFile::Append)){
            qint64 fs=file->size();
            qint64 rs=reply->size();
            qint64 i=fs;
            int n=8;
            char data[8];
            reply->seek(fs);
            file->seek(fs);
            while (i<=rs){
                if(rs-i<8)n=rs-i;
                reply->read(data,n);
                file->write(data,n);
                file->flush();
                i=i+8;
            }
            file->close();
        }


но два раза выходит записывается первая половина файла
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837071
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежникна http сервере есть команда которая указыывает ему с какого байта выдавать инфу? Content-Range .
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837089
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovКартежникна http сервере есть команда которая указыывает ему с какого байта выдавать инфу? Content-Range .
спасибл а где это тут указывается
Код: plaintext
1.
2.
3.
4.
  manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl(ui->lineEdit->text())));
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837097
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежникспасибл а где это тут указываетсяДокументацию на QT - это вы уже самостоятельно.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837201
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovКартежникспасибл а где это тут указываетсяДокументацию на QT - это вы уже самостоятельно.
manager->head(...) ?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837294
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник,

Видимо через setRawHeader
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837388
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovКартежникна http сервере есть команда которая указыывает ему с какого байта выдавать инфу? Content-Range .
Поправка, "команда которая указывает серверу с какого байта выдавать инфу" это хедер Range в запросе клиента.
А Content-Range - это хедер, которым сервер в своем ответе сообщает клиенту что он выполнил это указание и что в результате получилось.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38837566
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, есть такая путаница в моей ссылке.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838065
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyBasil A. Sidorovпропущено...
Content-Range .
Поправка, "команда которая указывает серверу с какого байта выдавать инфу" это хедер Range в запросе клиента.
А Content-Range - это хедер, которым сервер в своем ответе сообщает клиенту что он выполнил это указание и что в результате получилось.

делаю вот так но все равно получаю целую страницу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    QNetworkRequest req;
    req.setRawHeader("Content-Range","bytes 10-29/30");
    req.setUrl(QUrl("http://localhost/"));
    manager->get(req);
    qDebug()<<"finished!";
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838077
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежник,

видимо не хватает HTTP/1.1 206 Partial content, а как его указать? ведь setRawHeader требует название и значение.а здесь только значение
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838120
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не тот заголовок в пример взял)).это со стороны сервера такой заголовок
а с клиента надо так отправлять
Код: plaintext
1.
req.setRawHeader("Range","bytes=10-29");
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838129
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь скажите мне. как сделать чтобы получилось что не весь сразу файл а по немножку получать. допустим по 100 кбит в сек. мне надо каждый раз новый заголовок с соответсвующими значениями формировать и отправлять?
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838252
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я заходил в свойства сетевушки. Ставил в настройках скорость 10 Mbit/s
и получал фактическую скорость трансфера чуть меньше чем 10 * 1024 (kbit/s) / 8 = 1280 Kbit/s.

И тестил какие-то сетевые штуки на предмет падений производительности.
Смотрел как JPEG с progressive рисуется в браузере. И еще всякие штуки.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838384
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня скорость 8mbit/sec. Допустим я скачиваю какой нить фильм (700мб) или visual studio. допустим в любую секунду может оборваться связь. допустим у меня тарификация а каждый мегабайт.и я не хочу платить лишнего(допустим качать download manager мне тоже не хочется по той же причине). и вот я хочу скачать этот фильм или визуал студию.
ну допустим файл весит 700 мб = 734003200 байт.как лучше поступить?
так?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    QNetworkRequest req;
    req.setRawHeader("Range","bytes=0-734003199");
    req.setUrl(QUrl(ui->lineEdit->text()));
    manager->get(req);



или в цикле по одному мегабайту?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    QNetworkRequest req;
    req.setRawHeader("Range","bytes=0-1048575");
    req.setUrl(QUrl(ui->lineEdit->text()));
    manager->get(req);


и каждый раз увеличивать значение "bytes=" (просто пока не написал увеличение,ну думаю смысл понятен)
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838392
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                this, SLOT(replyFinished(QNetworkReply*)));
    QNetworkRequest req;
    req.setRawHeader("Range","bytes=0-734003199");
    req.setUrl(QUrl(ui->lineEdit->text()));
    manager->get(req);




я хочу понять этот случай,я думаю следующее, что пока я не загрузится все 734003200 байт доступ к ним я не получу и соответсвенно не смогу сохранить хотя бы какую нить часть? чтоб после разрыва увеличить значение "bytes=x-734003199" где x размер уже загруженных данных. если так то второй вариант мне подходит,ну если конечно кто нить не предложит получше
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838446
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картежникя думаю следующее, что пока я не загрузится все 734003200 байт доступ к
ним я не получу и соответсвенно не смогу сохранить хотя бы какую нить часть?
Добавь ещё три нолика и спроси себя: а в какое место будут приниматься все эти гигабайты
пока ты не получишь к ним доступ?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838449
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКартежникя думаю следующее, что пока я не загрузится все 734003200 байт доступ к
ним я не получу и соответсвенно не смогу сохранить хотя бы какую нить часть?
Добавь ещё три нолика и спроси себя: а в какое место будут приниматься все эти гигабайты
пока ты не получишь к ним доступ?..

доступ я к ним получаю следующим образом
Код: plaintext
1.
2.
3.
4.
5.
6.
if(file->open(QFile::ReadWrite))
        {
            file->write(reply->readAll());
            file->flush();
            file->close();
        }



тут я понимаю так что он считывает данные только после того как получил все 734003200(000 хоть с тремя ноликами) байт
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838452
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если файл будет весить 734003200000 то вот тут file->write(reply->readAll()); мне кажется может произойти что то не очень хорошее
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838641
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нашел готовое решение.и увидел что там файл запрашивается не по частям, а полностью и если загрузка была приостановлена,то запрос формируется только для оставшейся части файла.
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838767
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется класс class myrequest: public QObject вот с этим
тут я хотел отобразить то что вернул скрипт на сервере,т.е. html код страницы
Код: plaintext
1.
2.
3.
4.
public slots:
    void replayFinished(QNetworkReply *rr){
        qDebug()<<"replay= "<<rr->readAll();
    };


и следующей функцией отправляющей post запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int myrequest::sendpost(QString url,QString data){
    QNetworkRequest req;
    manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replayFinished(QNetworkReply*)));
    req.setHeader( QNetworkRequest::ContentTypeHeader, "text/html" );
    req.setUrl(QUrl(url));
    manager->post(req, data.toUtf8());
    return 0;
}


затем по нажатии кнопки формируется следующие данные и отправляется post запрос
Это работает, но не отображает ответ. в принципе скрипт reg.php не отображает ничего
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void MainWindow::on_pushButton_clicked()
{
    myrequest mr;
    QString url="",data="";
    url="http://localhost/reg.php";
    data.append("lastname="+ui->lineEdit->text());
    data.append("&firstname="+ui->lineEdit_2->text());
    data.append("&fathername="+ui->lineEdit_3->text());
    data.append("&login="+ui->lineEdit_4->text());
    data.append("&pass="+ui->lineEdit_5->text());
    mr.sendpost(url,data);
    
}



Это неизвестно работает или нет. и не отображает ответ.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void MainWindow::on_pushButton_2_clicked()
{   int ver=1;
    myrequest mr;
    QString url="",data="",s="user_version=1";;
    url="http://localhost/new_version.php";
    data.append(s);
    mr.sendpost(url,data);
}
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838768
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Картежник]
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
int myrequest::sendpost(QString url,QString data){
    QNetworkRequest req;
    manager=new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replayFinished(QNetworkReply*)));
    req.setHeader( QNetworkRequest::ContentTypeHeader, "text/html" );
    req.setUrl(QUrl(url));
    manager->post(req, data.toUtf8());
    return 0;
}
[/quot]
тут я переделал вот так
[SRC c++]

int myrequest::sendpost(QString url,QString data){
    QNetworkRequest req;
    manager=new QNetworkAccessManager;
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replayFinished(QNetworkReply*)));
    req.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/x-www-form-urlencoded"));
    req.setUrl(QUrl(url));
    manager->post(req, data.toUtf8());

    return 0;
}
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838769
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин торопился и испортил вопрос. вот правильный вопрос

имеется класс class myrequest: public QObject вот с этим
тут я хотел отобразить то что вернул скрипт на сервере,т.е. html код страницы
Код: plaintext
1.
2.
3.
4.
public slots:
    void replayFinished(QNetworkReply *rr){
        qDebug()<<"replay= "<<rr->readAll();
    };


и следующей функцией отправляющей post запрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
int myrequest::sendpost(QString url,QString data){
    QNetworkRequest req;
    manager=new QNetworkAccessManager;
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replayFinished(QNetworkReply*)));
    req.setHeader(QNetworkRequest::ContentTypeHeader,QVariant("application/x-www-form-urlencoded"));
    req.setUrl(QUrl(url));
    manager->post(req, data.toUtf8());

    return 0;
}


затем по нажатии кнопки формируется следующие данные и отправляется post запрос
Это работает, но не отображает ответ. в принципе скрипт reg.php не отображает ничего
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void MainWindow::on_pushButton_clicked()
{
    myrequest mr;
    QString url="",data="";
    url="http://localhost/reg.php";
    data.append("lastname="+ui->lineEdit->text());
    data.append("&firstname="+ui->lineEdit_2->text());
    data.append("&fathername="+ui->lineEdit_3->text());
    data.append("&login="+ui->lineEdit_4->text());
    data.append("&pass="+ui->lineEdit_5->text());
    mr.sendpost(url,data);
    
}



Это неизвестно работает или нет. и не отображает ответ. Но на самом деле скрипт отображает текст. вот мне нужно получить в QT этот текст. в браузере все работает. а через QT не могу отобразить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void MainWindow::on_pushButton_2_clicked()
{   int ver=1;
    myrequest mr;
    QString url="",data="",s="user_version=1";;
    url="http://localhost/new_version.php";
    data.append(s);
    mr.sendpost(url,data);
}
...
Рейтинг: 0 / 0
[QT] как организовать докачку файлов?
    #38838788
Фотография Картежник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда я делал все то же самое но без использования класса myrequest , все писал в mainwindow.cpp, то я мог получать данные с сервера. а как перенес все в класс то почему то не получается
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / [QT] как организовать докачку файлов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]