我是QtWebKit初学者我构建了加载页面的简单web框架(服务器端) 当我从这个页面提交数据时,我想从c ++端的服务器中捕获响应字符串 我怎样才能做到这一点 ?
答案 0 :(得分:8)
我修改了Qt(我是新手)并找到了一种方法来捕获WebKit下载的所有资源。方法如下:
1)创建自己的QNetworkAccessManager子类
2)在派生类中,覆盖虚函数createRequest
3)调用基类实现以获取响应对象。之后你可以看看 URL(或其他参数)并确定是否需要捕获该特定资源
4)如果你这样做 - 将readyRead信号连接到一个将捕获数据的插槽
5)在那个槽中调用peek函数来读取数据,这样WebKit也将获取数据
6)创建QWebPage对象后,调用setNetworkAccessManager并从步骤1)传递新创建的子类实例
就是这样 - 享受!
答案 1 :(得分:1)
您可以使用QNetworkReply
课程。 QWebPage
个实例具有networkAccessManager()
方法,该方法返回能够发送请求和接收响应的QNetworkAccessManager
实例。
您需要查找其finished
信号。
void QNetworkAccessManager::finished ( QNetworkReply * reply )
每当a发出此信号 待处理的网络回复完成。该 reply参数将包含一个指针 到刚刚结束的回复。
QNetworkReply
依次是QIODevice
的继承者,因此您可以调用其readAll()
方法来接收响应数据。
您可能还会发现this问题很有用。