2

これが私のプログラムです。このプログラムでは、Webサイト(例:http ://www.adobe.com/products/muse.html )
にリクエストを送信します。プレーンテキストボックスで返されるhtmlコードを表示します。

QUrl url("http://www.adobe.com/products/muse.html")

「thisfile」にHTMLコードを入れたい

file.setFileName("thisfile.html");

if (!file.open(QIODevice::WriteOnly))
{
    std::cerr << "Error: Cannot write file "
    << qPrintable(file.fileName()) << ": "
    << qPrintable(file.errorString()) << std::endl

    return false;
}

http.setHost(url.host(),80);
http.post(url.toString(),"term=yyyy&loc=en_us&siteSection=products%3Amuse",&file);

このコードは正しく機能しません。ファイルを表示すると、誤ったhtmlコードが表示されます。私は何をしなければなりませんか?

4

2 に答える 2

1

http.get()メソッドの代わりにhttp.post()使用して、サーバーで使用されるPOSTその他を設定する必要がありHeadersます。

QHttp::get()メソッドも非同期です。

あなたのケースは応答を取得するだけの簡単なものなので、私見HTMLに行くべきです。methodの違いを参照してくださいHTTP GETGETPOST

HTTP POSTのみを使用する必要がある場合は、これを確認してください

于 2012-06-12T10:03:03.820 に答える
0
 QNetworkRequest request;
 request.setUrl(QUrl("thisfile.html"));

 QNetworkReply *reply = manager->post(request, "term=yyyy&loc=en_us&siteSection=products%3Amuse");
 connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));

qt docsの QNetworkAccessManager を見てください。

readyRead関数で情報を読み取ってファイルに保存する必要があります

于 2012-06-12T09:39:06.137 に答える