***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());