WiFi QC自动测试:Qt控制无线路由器

发表于:2015-4-27 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:crazy_thb    来源:51Testing软件测试网采编

分享:
  这里在界面上放置了一个PlaintextEdit和两个按钮,上述的两个函数分别对应每一个按钮的点击事件。
  Qt提供了访问HTTP很简单的方式,使用它的API能够轻松地实现HTTP数据的交互。
  可以看到一开始初始化了一个QNetworkAccessManager,当数据到达客户端的时候replyFinished函数就会被呼叫。
  在这个函数里面,我判断了三种情况,其中比较特殊的就是AuthenticationRequiredError的事件。
  当打开Tplink路由器的时候,路由器就会弹出一个需要认证的界面从而触发这个事件。实际上从HTTP交互的header可以看出来。
  TPLINK740N使用的是HTTP摘要认证,可以看看此博客了解详情:
  点击打开链接
  当点击按钮触发on_init_clicked的时候,就会最终触发AuthenticationRequiredError的事件,因为没有给AP提供密码。接下来的每次交互中都需要给AP提供密码来保证访问的成功:
  req.setRawHeader("Authorization", "Basic YWRtaW46YWRtaW4=");
  其中YWRtaW46YWRtaW4=是从admin:admin产生的,欲知详情可以打开上面提供的链接。
  实际上,HTTP头部有很多字段,这里只使用了最重要的一个,其他的Qt会自动帮我们加的(好方便!)
  当点击按钮触发on_start_clicked的时候,就可以成功设置AP了,上面设置的效果如下:
  聪明的你很容易修改这个字符串来达到你想要的效果:
  QString get_str = "http://192.168.2.1/userRpm/WlanNetworkRpm.htm?ssid1=haha&wlMode=2&channel=3&mode=5 \
  &chanWidth=2&ap=1&broadcast=2&brlssid=&brlbssid= \
  &keytype=1&wepindex=1&authtype=1&keytext=&Save=%B1%A3+%B4%E6 HTTP/1.1";
  最终可以给每一个AP提供一个配置文件,因为上层可以做到一致(SSID、channel等设置),所以很容易实现自动化
  另外,从AuthenticationRequiredError给出的信息里面(rawHeaderPairs)可以判断AP的型号
22/2<12
100家互联网大公司java笔试题汇总,填问卷领取~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号