HTTP GET请求举例

本文主要是给你自己学习的一个记录



1、首先运行cmd.exe,然后ping www.baidu.com,获取IP地址,使用网络调试助手作为TCP客户端,连接IP地址:192.192.192.192,端口:80。

2、请求消息:
/*****************************************/
GET /index.html HTTP/1.1
Host: www.baidu.com


/*****************************************/
3、响应消息:
HTTP/1.1 200 OK
……
以下是一个使用Qt的多线程和网络请求的示例代码: ```cpp #include <QtCore> #include <QtNetwork> class HttpWorker : public QObject { Q_OBJECT public: HttpWorker(QObject *parent = nullptr) : QObject(parent) {} public slots: void request(const QString &urlString) { QUrl url(urlString); QNetworkAccessManager manager; QNetworkRequest request(url); QNetworkReply *reply = manager.get(request); connect(reply, &QNetworkReply::finished, this, [reply]() { QByteArray data = reply->readAll(); emit finished(data); reply->deleteLater(); }); } signals: void finished(const QByteArray &data); }; int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); HttpWorker worker; QThread thread; worker.moveToThread(&thread); thread.start(); QObject::connect(&worker, &HttpWorker::finished, &app, [&](const QByteArray &data) { qDebug() << data; QCoreApplication::quit(); }); QMetaObject::invokeMethod(&worker, "request", Qt::QueuedConnection, Q_ARG(QString, "https://www.example.com")); return app.exec(); } #include "main.moc" ``` 这个示例代码创建了一个`HttpWorker`类来处理网络请求。在`request`函数中,它接收一个URL字符串,使用`QNetworkAccessManager`发送GET请求,并在请求完成时发出`finished`信号。 在`main`函数中,我们创建了一个Qt线程和一个`HttpWorker`对象,并将其移到线程中。然后,我们连接`HttpWorker`的`finished`信号到`main`函数中的一个槽函数,并使用`QMetaObject::invokeMethod`函数在`HttpWorker`对象的线程上异步调用`request`函数。 当`HttpWorker`对象完成请求时,它将发出`finished`信号,该信号将由`main`函数中的槽函数处理。在此示例中,槽函数只是输出数据并退出应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值