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 を GET しないのはなぜですか?

また、URLを共有していただけるとデバッグしやすくなります。もちろん、出来なくてもOKです。

于 2013-10-20T08:00:08.540 に答える