標籤:gzip live connect sig append exp debug [] let
1 // httpclientdemo.h 2 #ifndef HTTPCLIENTDEMO_H 3 #define HTTPCLIENTDEMO_H 4 5 #include <QMainWindow> 6 #include <QTcpSocket> 7 8 namespace Ui { 9 class HttpClientDemo;10 }11 12 class HttpClientDemo : public QMainWindow13 {14 Q_OBJECT15 16 public:17 explicit HttpClientDemo(QWidget *parent = 0);18 ~HttpClientDemo();19 20 private:21 Ui::HttpClientDemo *ui;22 QTcpSocket *tcpSocket;23 QString addr;24 25 private slots:26 void onConnected();27 void onReadyRead();28 void onDisconnected();29 void on_ClearButton_clicked();30 void on_OKButton_clicked();31 };32 33 #endif // HTTPCLIENTDEMO_H
1 // httpclientdemo.cpp 2 #include "httpclientdemo.h" 3 #include "ui_httpclientdemo.h" 4 5 #include <QDebug> 6 #include <QFile> 7 8 HttpClientDemo::HttpClientDemo(QWidget *parent) : 9 QMainWindow(parent),10 ui(new Ui::HttpClientDemo)11 {12 ui->setupUi(this);13 14 tcpSocket = new QTcpSocket(this);15 connect(tcpSocket, SIGNAL(connected()), this, SLOT(onConnected()));16 connect(tcpSocket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));17 connect(tcpSocket, SIGNAL(disconnected()), this, SLOT(onDisconnected()));18 }19 20 void HttpClientDemo::onConnected()21 {22 qDebug() << "Connected..";23 QString head = "GET / HTTP/1.1\r\n"24 "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n"25 // Not to compress26 // "Accept-Encoding:gzip, deflate, sdch\r\n"27 "Accept-Language:zh-CN,zh;q=0.8\r\n"28 "Connection:keep-alive\r\n"29 "Host:";30 head += addr + "\r\n"31 "Upgrade-Insecure-Requests:1\r\n"32 "User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36\r\n\r\n";33 QByteArray tmp = head.toLatin1();34 tcpSocket->write(tmp.data());35 }36 37 void HttpClientDemo::onReadyRead()38 {39 // Absolute path40 QFile file("D:\\Workspace\\Qt\\HttpClientDemo\\index.txt");41 file.open(QIODevice::Append | QIODevice::Text);42 QTextStream out(&file);43 qDebug() << "Ready read..";44 out << tcpSocket->readAll();45 out.flush();46 file.close();47 }48 49 void HttpClientDemo::onDisconnected()50 {51 qDebug() << "Disconnected..";52 }53 54 HttpClientDemo::~HttpClientDemo()55 {56 delete ui;57 }58 59 void HttpClientDemo::on_ClearButton_clicked()60 {61 ui->IpLineEdit->setText(QString());62 }63 64 void HttpClientDemo::on_OKButton_clicked()65 {66 addr = ui->IpLineEdit->text();67 tcpSocket->connectToHost(addr, 80);68 }
1 // main.cpp 2 #include "httpclientdemo.h" 3 #include <QApplication> 4 5 int main(int argc, char *argv[]) 6 { 7 QApplication a(argc, argv); 8 HttpClientDemo w; 9 w.show();10 11 return a.exec();12 }
Simple http client demo