从WebKitNetworkRequest获取POST数据

时间:2012-09-21 05:24:32

标签: python webkit

我试图通过HTTP请求将运行在GTK webkit中的javascript应用程序发送到Python,并在POST中发送数据。

我可以使用resource-request-starting捕获请求并检查请求的uri。

我知道请求有效,因为我可以通过请求标头发送数据并使用

进行查看
def on_resource_request_starting(view, frame, resource, request, response):
    uri = urllib.unquote(request.props.uri)
    if uri.startswith('http://appname.local/'):
        print request.get_message().request_headers.get_one('foobar')

但是当我使用print request.get_message().request_body.data时,我什么都没得到。

如何查看POST数据?

2 个答案:

答案 0 :(得分:0)

我没有使用过此API,但我相信在阅读soup_message_body_flatten()字段之前,您需要调用绑定的等效data。请参阅C API中的SoupMessageBody文档。

所以,猜测:

print request.get_message().request_body.flatten().data

答案 1 :(得分:0)

连接到SoupSession"请求排队"信号和得到 buffer(s)使用soup_message_body_get_chunk(soupmsgbody,num); 似乎工作(今天在webkitgtk1,2015年6月)。 webkit_get_default_session()返回有问题的SoupSession。