QNetworkReply不会在HTML Comment中隐藏JavaScript

时间:2013-10-20 06:26:09

标签: javascript html qt qtnetwork

我正在使用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;
}

我应该获得的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?

1 个答案:

答案 0 :(得分:2)

对我而言,这似乎不太可能是由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,则调试起来会更容易。当然,如果不可能,那也没关系。