私はしばらくの間、Webkit GTK API を使用して特定のページ読み込みの HTTP 応答コードを取得する方法を見つけようと試みてきました。
Webkit GTK はHTTP ネットワーキングにSoup APIを使用します。ドキュメントによると、2 つの関連するシグナルがあるようです:"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 など) を取得する方法の例を誰か提供できますか?