2012-09-21 11 views
7

Ich versuche, Daten aus einer Javascript-Anwendung in GTK webkit läuft in POST gesendet über eine HTTP-Anforderung mit den Daten zu Python zu senden.Erhalten Sie POST-Daten von WebKitNetworkRequest

Ich kann die Anfrage erfassen resource-request-starting und Überprüfung der uri des Antrags mit.

Ich weiß, dass die Anfrage funktioniert, weil ich Daten über die Request-Header senden können und sehen es mit

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') 

Aber wenn ich print request.get_message().request_body.data verwende ich nichts bekommen.

Wie kann ich die POST-Daten anzeigen?

+0

Bitte schreiben Sie die Antwort, wenn Sie es finden – Vor

Antwort

0

Ich habe diese API nicht verwendet, aber ich glaube, dass Sie das Äquivalent der Bindung soup_message_body_flatten() vor dem Lesen der data Feld aufrufen müssen. Siehe die Dokumentation für SoupMessageBody in der C-API.

Also, bei einer Vermutung:

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

Anspannen zu SoupSession "Anfrage-Warteschlange" -Signal und immer Puffer (n) unter Verwendung von soup_message_body_get_chunk (soupmsgbody, num); scheint zu funktionieren (in webkitgtk1 heute, Juni 2015). webkit_get_default_session() gibt die betreffende SoupSession zurück.