c – 如何使用QWebEngineUrlRequestInterceptor
发布时间:2020-12-16 10:03:28 所属栏目:百科 来源:网络整理
导读:我需要拦截在我们的Qt应用程序中的WebEngine qml组件中发出的请求. 我找到了关于QWebEngineUrlRequestInterceptor的文档,这里似乎就是这里http://doc.qt.io/qt-5/qwebengineprofile.html#details和这里http://doc.qt.io/qt-5/qwebengineurlrequestintercepto
我需要拦截在我们的Qt应用程序中的WebEngine qml组件中发出的请求.
我找到了关于QWebEngineUrlRequestInterceptor的文档,这里似乎就是这里http://doc.qt.io/qt-5/qwebengineprofile.html#details和这里http://doc.qt.io/qt-5/qwebengineurlrequestinterceptor.html#details.但是我没有找到任何关于如何在Qt / C中执行此操作的代码示例. 任何帮助表示赞赏. 解决方法
在这篇文章的帮助下管理拼图:
https://forum.qt.io/topic/69135/how-to-send-network-requests-in-qwebengine/2
这是我连接QWebEngineUrlRequestInterceptor的解决方案: .h文件 class WebUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor { Q_OBJECT public: WebUrlRequestInterceptor(QObject *p = Q_NULLPTR); void interceptRequest(QWebEngineUrlRequestInfo &info); }; .cpp文件 WebUrlRequestInterceptor::WebUrlRequestInterceptor(QObject *p) :QWebEngineUrlRequestInterceptor(p) { } void WebUrlRequestInterceptor::interceptRequest(QWebEngineUrlRequestInfo &info) { QString rsrct = ""; switch(info.resourceType()){ case 0:rsrct="ResourceTypeMainFrame = 0,// top level page";break; case 1:rsrct="ResourceTypeSubFrame,// frame or iframe";break; case 2:rsrct="ResourceTypeStylesheet,// a CSS stylesheet";break; case 3:rsrct="ResourceTypeScript,// an external script";break; case 4:rsrct="ResourceTypeImage,// an image (jpg/gif/png/etc)";break; case 5:rsrct="ResourceTypeFontResource,// a font";break; case 6:rsrct="ResourceTypeSubResource,// an other subresource.";break; case 7:rsrct="ResourceTypeObject,// an object (or embed) tag for a plugin,";break; case 8:rsrct="ResourceTypeMedia,// a media resource.";break; case 9:rsrct="ResourceTypeWorker,// the main resource of a dedicated worker.";break; case 10:rsrct="ResourceTypeSharedWorker,// the main resource of a shared worker.";break; case 11:rsrct="ResourceTypePrefetch,// an explicitly requested prefetch";break; case 12:rsrct="ResourceTypeFavicon,// a favicon";break; case 13:rsrct="ResourceTypeXhr,// a XMLHttpRequest";break; case 14:rsrct="ResourceTypePing,// a ping request for <a ping>";break; case 15:rsrct="ResourceTypeServiceWorker,// the main resource of a service worker.";break; case 16:rsrct="ResourceTypeUnknown";break; default : rsrct="Unknown type";break; } qDebug()<<"t"<<Q_FUNC_INFO<<":ntt" << "WebUrlRequestInterceptor::interceptRequest " <<info.requestMethod() <<"rn "<<info.requestUrl()<<" "<<rsrct <<"rn"; } main.cpp文件 WebUrlRequestInterceptor *wuri = new WebUrlRequestInterceptor(); QWebEngineProfile::defaultProfile()->setRequestInterceptor(wuri); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |