1

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

4

1 回答 1

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");在发出请求之前尝试打电话。

你的要求也有点奇怪。您正在使用 Content-type "application/x-www-form-urlencoded" 发布,但未提供任何数据。为什么不直接获取 URL?

此外,如果您可以共享 URL,它将更容易调试。当然,如果不可能,那也没关系。

于 2013-10-20T08:00:08.540 回答