如何QNetworkReply
在 QWebPage 之前从特定 URL 的响应中读取数据?但是当finished()
发出信号时,QWebPage 已经读取了回复,所以连接readyRead()
或调用reply->readAll()
什么都不返回。我尝试在自己的 QWebPage 类中重载 acceptNavigationRequest() 方法,如下所示:
bool webPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type)
{
//qDebug() << "filename = " << request.rawHeader("content-disposition");
if(request.url().path() == QStringLiteral("download.php"))
{
QNetworkReply *reply = networkAccessManager()->get(request);
QFile file;
file.setFileName(filename);
if(!file.open(QIODevice::ReadWrite))
{
/* handle error */
}
file.write(reply->readAll());
file.close();
return false;
}
但是我无法回复工作......返回的回复无效(甚至不返回http状态码,我知道这意味着发送的http请求无效但我不知道为什么)。
欢迎使用不同的方法来解决这个问题!