2

这是我的程序。在这个程序中,我想向一个网站发送请求(例如: 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响应,您应该选择HTTP GET恕我直言。请参阅和方法之间的区别GETPOST

如果您只能使用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 文档中查看 QNetworkAccessManager

您必须阅读信息并将其保存到readyRead函数中的文件

于 2012-06-12T09:39:06.137 回答