我正在使用 Qt 4.8 发出 HTTP 发布请求。
void post() {
QByteArray parameters;
QUrl url("http://www.somerandomurl.com");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkReply* reply = network_access_manager->post(request, parameters);
}
void requestfinished(QNetworkReply* reply) {
QString response(QString::fromUtf8(reply->readAll()));
std::cout << response.toStdString() << std::endl;
}
我应该得到的 HTML 页面在 HTML 注释中隐藏了 Javascript。如果我使用 Firefox/Chrome 查看它或使用 Python3 发出 HTTP 请求,我将完全按照我想要的方式使用 Javascript 代码获得评论。看起来像这样:
<script language="JavaScript">
<!--
Javascript Code
Javascript Code
Javascript Code
//-->
</script>
然而,对于 Qt 示例,我只得到没有 Javascript 的评论。
<script language="JavaScript">
<!--
//-->
</script>
有没有办法让 Qt 4.8 也获得 Javascript?
最佳答案
对我来说,这似乎不太可能是由 Qt 过滤 JavaScript 引起的,但更有可能是服务器上的某些东西基于用户代理执行某些操作。尝试调用 request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36");
在你发送你的请求之前。
另外你的要求看起来有点奇怪。您正在发布内容类型为“application/x-www-form-urlencoded”但未提供任何数据。为什么不直接获取 URL?
此外,如果您可以共享 URL,则调试起来会更容易。当然,如果不可能,那也没关系。
关于javascript - QNetworkReply 没有在 HTML Comment 中隐藏 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474540/