url Qt编程中的解析与组合

url Qt编程中的解析与组合

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

url结构

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

在这里插入图片描述

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;

  • 另外由于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;

测试结果

在这里插入图片描述

补充

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;
  • qDebug输出的字符串会省略密码,可能是为了安全考虑
  • 但是url.toString()方法输出的地址包含完整信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值