#include "HttpFun.h"
#include <QTextCodec>
const int nHTTP_TIME = 10000; //10秒
HttpFun::HttpFun(QObject *parent) :
QObject(parent)
{
m_pNetworkManager = new QNetworkAccessManager(this);
m_pNetworkReply = NULL;
m_pTimer = new QTimer;
connect(m_pTimer,SIGNAL(timeout()),this,SLOT(slot_requestTimeout()));//超时信号
}
//发起请求
void HttpFun::sendRequest(const QString &strUrl)
{
m_strUrl = strUrl;
QNetworkRequest netRequest;
netRequest.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
netRequest.setUrl(QUrl(strUrl)); //地址信息
if(strUrl.toLower().startsWith("https"))//https请求,需ssl支持(下载openssl拷贝libeay32.dll和ssleay32.dll文件至Qt bin目录或程序运行目录)
{
QSslConfiguration sslConfig;
sslConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
sslConfig.setProtocol(QSsl::TlsV1_1);
netRequest.setSslConfiguration(sslConfig);
}
// 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();
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(); //释放内存
}
//请求超时
void HttpFun::slot_requestTimeout()
{
emit signal_requestFinished(false,"timeout");//请求失败
m_pNetworkReply->deleteLater();
this->deleteLater();//释放内存
}
Lankin2013
- 粉丝: 32
- 资源: 91
最新资源
- 自考3734v18. 英语词根词缀记忆大全(整理打印版
- Sigma-Delta ADC Matlab Model 包含实例和说明,多种MATLAB代码和simulink模型都整合在里面
- 高频隔离DC DC变换器模型(DAB-双有源全桥),基于MATLAB Simulink建模仿真 电压电流双闭环控制,功率双向流
- Java项目:婚品商城采购系统(java+Servlet+Jsp+Jdbc+jQuery+Ajax+MVC+mysql)
- DiscuzX3.5新秀网络验证管理系统-易语言模块-ver1.0
- DiscuzX3.5新秀网络验证管理系统-易语言模块-ver1.0
- Java项目:婚品商城采购系统(java+Servlet+Jsp+Jdbc+jQuery+Ajax+MVC+mysql)
- Java项目:婚品商城采购系统(java+Servlet+Jsp+Jdbc+jQuery+Ajax+MVC+mysql)
- 基于遗传算法原理系统代码.zip
- 模拟退火算法调度问题代码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
前往页