QT实现HTTP请求示例

***QT相关文章***

一、导入HTTP相关头文件

#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkAccessManager>

二、创建请求

1、创建请求驱动,并创建一个请求触发后的回调事件槽。

    QNetworkRequest request;
    QNetworkAccessManager* naManager = new QNetworkAccessManager(this);
    QMetaObject::Connection connRet = QObject::connect(naManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestFinished(QNetworkReply*)));
    Q_ASSERT(connRet);

2、编写触发请求,比如访问百度主页

//设置URL
request.setUrl(QUrl("http://www.baidu.com"));
//发送get请求
naManager->get(request);

3、完成触发后的回调函数

void MainWindow::requestFinished(QNetworkReply* reply)
{
    // 获取返回状态码
    QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    if(statusCode.isValid())
    {
       qDebug() << "status code =" << statusCode.toInt();
    }

    QVariant reason = reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
    if(reason.isValid())
    {
        qDebug() << "reason =" << reason.toString();
    }

    QNetworkReply::NetworkError err = reply->error();
    if(err != QNetworkReply::NoError) 
    {
        qDebug() << "Failed:" << reply->errorString();
    }
    else 
    {
        // 获取返回请求详细信息
        QString ss = "";
        ss.append(reply->readAll());
        qDebug()<<ss.toUtf8();
    }
}

4、查看调试窗口,可以看到百度页面的信息被打印出来



三、POST请求

post请求只要调用post方法带上请求头参数即可

//post请求参数    
QString postRequestParam = "param=11111";
//开始请求
naManager->post(request, postRequestParam.toUtf8());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值