如何在QtWebKit中获得响应

时间:2010-03-11 15:10:36

标签: qtwebkit

我是QtWebKit初学者我构建了加载页面的简单web框架(服务器端) 当我从这个页面提交数据时,我想从c ++端的服务器中捕获响应字符串 我怎样才能做到这一点 ?

2 个答案:

答案 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问题很有用。