QNetworkReply 不会在 HTML 注释中隐藏 JavaScript

QNetworkReply doesn't get JavaScript hidden in HTML Comment

本文关键字:隐藏 JavaScript 注释 HTML QNetworkReply      更新时间:2023-09-26

我正在使用Qt 4.8发出HTTP Post请求。

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;
}

如果我用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,则调试会更容易。当然,如果不可能,那也没关系。