我一直在尝试弄清楚如何使用 Webkit GTK API 来获取特定页面加载的 HTTP 响应代码。
Webkit GTK 使用Soup API进行 HTTP 网络,根据文档,似乎有两个相关信号:"resource-request-starting"
和"resource-response-received"
.
所以,我尝试连接一个信号"resource-request-starting"
:
g_signal_connect(web_view, "resource-request-starting", G_CALLBACK(resource_request_starting_callback), 0);
......它的工作原理。在回调处理程序中,我可以访问底层SoupMessage
对象,它为我提供有关 HTTP 请求的信息。
所以这让我得到了 HTTP请求,但是......当我尝试获得实际的 HTTP响应时,我遇到了麻烦。我试着听"resource-response-received"
信号:
g_signal_connect(web_view, "resource-response-received", G_CALLBACK(resource_response_received_callback), 0);
这会导致 GTK 发出警告:
GLib-GObject-WARNING **: /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:2295: signal `resource-response-received' is invalid for instance `0x2b46c00'
谷歌搜索resource-response-received
,我发现几乎没有关于这个信号的信息。该文档声称它可以满足我的需求,但实际上它并没有真正起作用。
所以,我不知道我是不是走错了路。但总的来说,谁能提供一个示例,说明如何使用 Webkit GTK 获取页面加载的实际 HTTP 状态代码(如 200、404 等)?