qt之fillder抓包(QT网络版有一些具体的坑)
最近项目中使用到了Qt的网络库,在用的过程中也发现了不少坑和问题,本文仅仅作为记录,方便日后查阅。
因为我们整个客户端的gui都是使用qt来完成的,心想qt既然有网络库,而且真心觉着qt封装的控件还是不错的,所以就使用了qt的网络库,说实话qt的网络库封装的确实比较好用,所以开发过程就有条不紊的进行着,一直也没有遇到什么比较大的问题,直到开发完大半部分网络模块,交由产品测试时出现了一个问题(还是测试同志比较给力啊),测试同学发现使用fillder抓不到qt的网络请求包,这虽然对开发来说不是什么大问题,但这总给测试同学带来了一些问题,最后网上查找了一些资料,才发现这是一个坑,qt的网络请求需要设置代理才能被fillder抓到包。有了这个提示之后,也就只需简简单单的几行代码就可以帮助fillder抓到包,代码如下:
1
2
3
4
5
6
7
|
QNetworkProxy proxy; proxy.setType(QNetworkProxy::Socks5Proxy); proxy.setHostName( "proxy.example.com" ); proxy.setPort(1080); proxy.setUser( "username" ); proxy.setPassword( "password" ); QNetworkProxy::setApplicationProxy(proxy); |
为个别套接字设置代理的另一种方法是使用QAbstractSocket::setProxy()和QTcpServer::setProxy()。这种情况下,可以使用以下方式禁用代理:
1
|
serverSocket->setProxy(QNetworkProxy::NoProxy); |
相关的设置网络代理文章:Qt之QNetworkProxy
上边说到的这个坑不能算是特别大,但是我们还发现qt网络库其他的小问题,导致项目有严重的crash(到目前为止我们是发现了这个问题,但有可能通过其他路径解决),搞不好qt的网络库都会被我们替换掉,毕竟市面上开源的网络库并且比较稳定的也不少,比如libcurl、boost::asio、等(点此了解)。经过我们测试同学细心的测试后发现了几个问题,如下:
1、在网络请求发生阶段,如果主事件循环退出,则出现假死
2、主线程中使用异步请求时收不到finished信号
3、工作线程中使用同步收不到finished信号
这3个问题看似都能避免,但都是比较大的坑。而且很容易导致程序出现异常。
逼逼了这么多,感觉qt的网络库还是不太靠谱啊,还需要继续完善,后边如果网络库这块儿还有变动,我会重新写一篇文章来描述问题的解决方案。
http://www.cnblogs.com/swarmbees/p/5660910.html
qt之fillder抓包(QT网络版有一些具体的坑)的更多相关文章
- Fillder抓包配置
Faillder设置,完成以下设置后重启Fillder Fillder工具配置 设置端口 端口设置 (根据公司限制使用范围内的端口) 设置是否远程连接 勾选Decrypt HTTPS traffic ...
- qt之fiddler抓包
最近项目中使用到了Qt的网络库,在用的过程中也发现了不少坑和问题,本文仅仅作为记录,方便日后查阅. 因为我们整个客户端的gui都是使用qt来完成的,心想qt既然有网络库,而且真心觉着qt封装的控 ...
- fillder 抓包工具详解
一.安装详解 直接点击.exe可执行文件,一直下一步直到安装完成即可.打开主要为5个部分: 二.安装jmeter插件详解 三.工具详解 3.1:工具条:,可以给指定的请求添加备注信息,在导出后可以查看 ...
- fillder抓包工具详解
https://www.cnblogs.com/yyhh/p/5140852.html
- 推荐一些socket工具,TCP、UDP调试、抓包工具 推荐一些socket工具,TCP、UDP调试、抓包工具
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具 (转载)
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- 推荐一些socket工具,TCP、UDP调试、抓包工具
还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...
- Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示
Android 系统版本号非常多,较新的 4.4 ,较老的 2.3 ,都有人用. Qt on Android 开发的 Android 应用.默认在 Android 设备上是非全屏的. 而有些应用的需求 ...
- Fedora15下搭建QT开发环境及编译QT
看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...
随机推荐
- C#读取文件高效方法实现
C# Code 12345678910111213141516171819202122232425262728293031 private void button1_Click ...
- 【转】Android中定时器的3种实现方法
原文网址:http://www.android-study.com/pingtaikaifa/508.html 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与线程的s ...
- CoreData Multiple Context性能分析-读书笔记
From: http://floriankugler.com/blog/2013/4/29/concurrent-core-data-stack-performance-shootout http: ...
- 介绍几个移动web app开发框架
jQuery Mobile jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面.jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格.j ...
- centos Minicom通信终端
minicom是linux下的串口通信软件,他使用完全使用键盘操作.它虽然没有windows下的超级终端好用,但是它也是一种串口通信的方法.一.minicom安装在超级终端中输入:sally@sall ...
- poj 3258 River Hopscotch(二分搜索之最大化最小值)
Description Every year the cows hold an ≤ L ≤ ,,,). Along the river between the starting and ending ...
- hibernate-4.3.5安装配置
起初照着官方文档配,一直出错,貌似官方的文档时错的,查了非常多资料,综合整理了一个可行的方案,例如以下: 0.1包结构 test.demo test.domain //实体类 test.util// ...
- [TypeScript] Avoid any type
To avoid using "any" type is a best pratice. The reason for that is it disable the power o ...
- springmvc4+hibernate4分页查询功能
Springmvc+hibernate成为现在很多人用的框架整合,最近自己也在学习摸索,由于我们在开发项目中很多项目都用到列表分页功能,在此参考网上一些资料,以springmvc4+hibnerate ...
- webform开发经验(一):Asp.Net获取Checkbox选中的值
webform中获取repeat控件列表下的checkbox选中的值: 码农上代码: public static string getSelectedIDs(Repeater Rpt_) { stri ...