QT:QUrl,无百分比编码
QT: QUrl with no percent encoding
QT:我想知道是否有一种方法可以在不编码最终URL的情况下从字符串创建QUrl或其他URL类对象。例如,下面是我的代码片段:
QString GetJsonStringFromURL(QString url) //url == "192.168.0.111/controller?POSITION|03|100"
{
QEventLoop eventLoop;
QNetworkAccessManager mgr;
QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
QNetworkRequest req( QUrl::fromUserInput(url) ) ;
QNetworkReply *reply = mgr.get(req);
eventLoop.exec(); //wait till reply finished
QString strReply = reply->readAll();
return strReply;
}
这段代码访问一个局域网控制器,用get方法请求它的json,同时在url中传递一个参数。我传递的url得到百分比编码到:
"192.168.0.111/控制器?位置%7C03%7C100"
这是我试图避免的。我试图访问的服务器是一个自定义的硬件,固件用C编写,不包含百分比解码。我希望避免在服务器端进行维护。我试过浏览QUrl类引用,但没有一个可用的方法提供所需的结果。
这在QNetworkRequest
中是不可能的,因为每个请求都需要一个QUrl对象,该对象存储目的地,并在内部转换为编码字符串。
setRawHeader不适用于您,因为它可以设置除URL之外的所有HTTP标头,URL是GET请求的一部分。
确认原始HTTP标头格式curl -v http://stackoverflow.com/questions/
GET /questions/ HTTP/1.1
User-Agent: curl/7.37.1
Host: stackoverflow.com
Accept: */*
因此,您需要一个完全原始的套接字连接(我对此没有任何经验)。
我个人没有使用过这个,但我想我会像你提到的那样发布你在课堂参考资料中找不到任何东西。
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 在卡萨布兰卡形成编码参数的列表
- 使用C++进行游程编码
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 使用已使用 java 编码的 openssl 解码数据
- 编写一个函数以使用 n 百分比的 CPU 使用率
- boost 是否有按特殊类型值编码状态"compact optional"?
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 如何使用 C++将 ISO-2022-KR 编码转换为 UTF-8 编码?
- 绝对编码器十六进制输入
- 防止C++中的硬编码数字
- 获取 2 个数字之间的差异百分比
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 使用文件内容作为硬编码字符串
- 运行长度编码程序 c++ 的问题
- 以C++为单位进行运行长度编码
- *新的编码器*格式和运算符
- 在CRC-16 CCITT中将数据从二进制解码为文本,我应该输入一个码字,使用CRC生成器进行编码
- QT:QUrl,无百分比编码