下载Q
GET - 从指定的服务器中获取数据
POST - 提交数据给指定的服务器处理GET方法:使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:
void HttpFun::sendRequest(const QString &strUrl)
{
m_strUrl = strUrl;
QNetworkRequest netRequest;
netRequest.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
netRequest.setUrl(QUrl(strUrl)); //地址信息
// QString strBody; //http body部分,可封装参数信息
// QByteArray contentByteArray = strBody.toLatin1();//转成二进制
// m_pNetworkReply = m_pNetworkManager->post(netRequest,contentByteArray);//发起post请求
m_pNetworkReply = m_pNetworkManager->get(netRequest); //发起get请求
connect(m_pNetworkReply,SIGNAL(finished()),this,SLOT(slot_requestFinished())); //请求完成信号
m_pTimer->start(nHTTP_TIME);
}
//请求结束
void HttpFun::slot_requestFinished()
{
m_pTimer->stop();//关闭定时器
QByteArray resultContent = m_pNetworkReply->readAll();
QString strJson(resultContent);
QTextCodec* pCodec = QTextCodec::codecForName("UTF-8");
QString strResult = pCodec->toUnicode(resultContent);
int nHttpCode = m_pNetworkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();//http返回码
if(nHttpCode == 200)//成功
{
emit signal_requestFinished(true,strResult);//请求成功
}
else
{
emit signal_requestFinished(false,strResult);//请求失败
}
m_pNetworkReply->deleteLater();
this->deleteLater(); //释放内存
}