[QT开发]网络编程中,发送请求成功,无法接收回信
来源:互联网 发布:ubuntu anaconda 编辑:程序博客网 时间:2024/05/19 16:06
问题描述
使用qt的网络编程,那么一定要使用QNetworkAccessManager类,然后配合QNetworkRequest和QNetworkReply使用。
- QNetworkRequest : 这个类可以发送get请求或者post请求,分别对应get和post方法
- QNetworkReply : 这个类是接收请求之后的回应
请求成功之后QNetworkAccessManager会发射一个finished信号,我们只要给它匹配一个槽函数,那么就可以在槽函数处理回应的内容了。
问题就在这里,有时候我们指定的槽函数,得不到回应,并不是槽函数没有被调用,而是回应为空
代码例子
void Util::httpRequest(QString url, QString method, QString outputStr){ if( !mNetManager ) { mNetManager = new QNetworkAccessManager(this); } //构造http请求 QNetworkRequest req; QSslConfiguration config; config.setPeerVerifyMode(QSslSocket::VerifyNone); config.setProtocol(QSsl::TlsV1SslV3); req.setSslConfiguration(config); req.setUrl(QUrl(url)); QNetworkReply *reply = NULL; if( !method.compare("GET")) { reply = mNetManager->get(req); } if( outputStr != NULL) { //使用utf-8上传post请求数据 //如果使用outputStr.toLatin1()的话,那么微信客户端产生的菜单是乱码 reply = mNetManager->post(req, outputStr.toUtf8()); }//qDebug() << "http requst start...."; connect(mNetManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(on_httpRequest_slot(QNetworkReply*)));}void Util::on_httpRequest_slot(QNetworkReply *reply){ QString str(reply->readAll());Log::log(QString("on http request %1").arg(str));Log::log(str); emit returnMsg(str);}
QString str(reply->readAll());
上面那一行得到回应的str为空
解决办法
上面的代码可以使用qt自带的工具打包,只要使用windeployqt
命令就能够打包成课运行的程序,打包方法如下:
自学QT之windeployqt工具的使用
上面的程序因为使用QSsl,也就是使用了https连接,这个需要的dll文件需要自己下载,名字就叫做libeay32.dll
和ssleay32.dll
这两个dll文件,放在打包后的目录下面,网络访问就可以恢复正常.
0 0
- [QT开发]网络编程中,发送请求成功,无法接收回信
- android 开发 网络编程 UDP协议 发送 接收 内网互发信息
- 网络编程(发送与接收)
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- Node.js中http 接收get请求、接收post请求、发送get请求、发送post请求
- 禅道邮件设置,发送成功, 无法接收问题!
- linux网络编程----发送与接收文件
- 网络编程 发送与接收 代码
- 【计算机网络】网络编程--udp发送接收数据
- 网络编程(socket 发送 & 接收信息)
- 网络发送接收+移动端编程
- 网络编程-UDP-接收端-发送端
- ajax请求成功后return无法接收到返回值
- iOS 网络编程 ASI 发送请求数据
- xutils3.0 post请求网络,后台无法接收到参数
- iOS网络开发基础--发送HTTP请求
- 最全面的前端学习资源汇总,拿走不谢!
- 关于scanf与printf里的%*d
- C语言计算文件的md5值
- 升级node与npm
- spring IOC bean配置方法
- [QT开发]网络编程中,发送请求成功,无法接收回信
- 转自博客园-Nerxious大神的对于匿名内部类的总结
- java支付宝网站支付
- 4-首次登入与在线求助
- Linux 录制gif文件
- android之MVP设计模式详解
- [Leetcode]234. Palindrome Linked List
- Linux回到上级文件的命令
- ContextLoaderListener作用详解