QT-http接口

QT中提供了http网络接口,由QNetworkAccessManager,QNetworkRequest,QNetworkReply三部分组成。

QNetworkRequest用于组件请求,包括请求头,请求内容。QNetworkAccessManager用于发出请求,常用的有get,post两个接口,参数就是QNetworkRequest,返回结果由QNetworkReply*。这里要注意的是QNetworkAccessManager刚得到的QNetworkReply*还不能使用,因为请求未必收到了服务端的应答,所以要绑定QNetworkReply的信号finished来判断服务是否返回,这个信号返回之后我们再对QNetworkReply进行处理,比如查看是否有网络错误,http返回的code和获取返回内容。

这里有几个点需要注意,如果请求是在工作线程中,那么这个线程中一定要有QEventLoop,因为信号槽的机制时在这个基础上建立的,而且QNetworkAccessManager,QNetworkRequest,QNetworkReply三个对象一定要在该对象中,否则也会可能会有收不到信号的情况。总之,在QT之中进行多线程交互,一定要理清楚对象所归属的线程。不一定要全部在线程中去new对象,moveToThread可以很方面的帮我们实现这一点。

还有QThread,如果重载了run函数,如果要用信号槽就一定要在run中调用eventloop的exec方法,如果直接使用QThread对象,那么不需要,通过QThread::start启动线程后,他本身就启动了EventLoop,把需要在这个线程中执行的对象,moveToThread到这个线程即可。

一个简单

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值