【发布时间】:2019-07-06 21:33:54
【问题描述】:
我一直在玩这个,我不能完全遵循 qt 中的重定向逻辑。真的,我想做的就是构建一个这样的函数:
bool MyClass::isRedirect(const QUrl &url)
{
return QUrl(m_NetworkAccessManager.get(QNetworkRequest(url))
->header(QNetworkRequest::LocationHeader).toString()).toString()
!= url.toString();
}
为了概念验证,我想用这个网址完成:
它应该重定向到:
我认为这应该很容易,但答案是在逃避我。我尝试输入网址,并检查指示重定向的标题的回复,但没有出现。阅读文档...我花了一个循环,因为我无法完全掌握是否应该在 QNetworkReply、QNetworkRequest 或 QNetworkAccessManager 本身上设置一个属性以允许重定向,然后,构造一个布尔值。
我也不确定每个重定向是否相同,或者某些页面是否以不同方式实现它,在页面加载后运行脚本,如下所示:
https://en.wikipedia.org/w/index.php?title=Vario%20Tessar&action=edit
如果我真的想,我可以使用QWebEngineView 来加载,然后比较网址之前和之后,但这似乎有点大。我只想用最简单的方法来执行上面的那个功能。
谢谢。
【问题讨论】:
标签: c++ qt http redirect qnetworkaccessmanager