gpt4 book ai didi

c++ - 使用 Ajax 请求从 QWebView 读取本地文件

转载 作者:太空狗 更新时间:2023-10-29 21:46:53 24 4
gpt4 key购买 nike

我正在开发一个封装了 HTML5/JQuery 网络应用程序的 Qt/C++ 程序。

我曾经发出 Ajax 请求以从服务器读取文件。但是现在,我希望 Qt 从本地磁盘读取文件并将其内容发送到我的 Web 应用程序。

我想我需要 Qt 来捕获来自 Web 应用程序的 Ajax 请求并将文件内容作为 Ajax 请求结果返回。

问题是我不知道该怎么做。目前,我还没有在谷歌上找到任何相关信息。

欢迎任何帮助!

最佳答案

我终于找到方法了。我覆盖了 QNetworkAccessManager

MyQNetworkAccessManager.h:

class MyQNetworkAccessManager : public QNetworkAccessManager
{
Q_OBJECT

protected:
virtual QNetworkReply * createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0);
};

MyQNetworkAccessManager.cpp:

QNetworkReply * MyQNetworkAccessManager::createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData) {
QUrl url = req.url();
QString path = url.path();

if (op == QNetworkAccessManager::GetOperation && path.endsWith("xml")) {
QUrl newUrl;

if(path.endsWith("..")) {
newUrl.setUrl("...");
}
else if(path.endsWith("...")) {
newUrl.setUrl("...");
}
else {
newUrl = url;
}
return QNetworkAccessManager::createRequest(QNetworkAccessManager::GetOperation, QNetworkRequest(newUrl));
}
else
{
return QNetworkAccessManager::createRequest(op, req, outgoingData);
}
}

主窗口.cpp:

// ....

QWebView *qWebView = new QWebView();

QWebPage *page = qWebView->page();
MyQNetworkAccessManager *networkManager = new MyQNetworkAccessManager();
page->setNetworkAccessManager(networkManager);

qWebView->setPage(page);

qWebView->load(QUrl("..."));

// ....

关于c++ - 使用 Ajax 请求从 QWebView 读取本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com