当前位置:   article > 正文

url Qt编程中的解析与组合_qt url

qt url

url Qt编程中的解析与组合

这里输出的时候出了问题,密码没有显示,诡异,哪位老哥知道的话告诉一下

url结构

协议部分://用户名:密码@域名部分:端口部分/虚拟目录/文件?参数部分#錨部分
  • 1

在这里插入图片描述

url 解析代码

  QString url_str="http://admin:123456@www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name";
  QUrl tmp_url(url_str);
  /*解析*/
  qDebug()<<"url"<<tmp_url<<endl;
  qDebug()<<"url userName"<<tmp_url.userName()<<endl;
  qDebug()<<"url password"<<tmp_url.password()<<endl;
  qDebug()<<"url  host"<<tmp_url. host()<<endl;
  qDebug()<<"url port"<<tmp_url.port()<<endl;
  qDebug()<<"url path"<<tmp_url.path()<<endl;
  qDebug()<<"url query"<<tmp_url.query()<<endl;
  qDebug()<<"url scheme"<<tmp_url.scheme()<<endl;
  qDebug()<<"url fragment"<<tmp_url.fragment()<<endl;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 另外由于query可以携带参数和信息,因此具有很大操作空间,由特定类QUrlQuery进行操作

url 组合代码

  /*组合*/
  QUrl res_url;
  res_url.setScheme("http");
  res_url.setHost("www.aspxfans.com");
  res_url.setPassword("123456");
  res_url.setUserName("admin");
  res_url.setPath("/news/index.asp");
  res_url.setQuery("boardID=5&ID=24618&page=1");
  res_url.setFragment("name");
  qDebug()<<"res_url:"<<res_url<<endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

测试结果

在这里插入图片描述

补充

std::string camera_addr="http://192.168.1.10:8899/onvif/device_service";
  std::string username="admin";
  std::string password="567890";
  QUrl url(QString::fromStdString(camera_addr));
  url.setUserName(QString::fromStdString(username));
  url.setPassword(QString::fromStdString(password));
  qDebug()<<url;
  std::cout<<"url:"<<url.toString().toStdString()<<std::endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • qDebug输出的字符串会省略密码,可能是为了安全考虑
  • 但是url.toString()方法输出的地址包含完整信息
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/299666
推荐阅读
相关标签
  

闽ICP备14008679号