2009-07-12 4 views
2

Newbie Frage ...Google App Engine: Wie man den POST-Body entlarvt?

ich Silverlight bin mit Daten zu meiner GAE Anwendung POST

class XmlCrud(webapp.RequestHandler): 
    def post(self): 

     body = self.request.body 

Die Daten stammen in Ordnung, aber es ist wie folgt entkommen:

%3C%3Fxml+version=%221.0%22+encoding%3D%22utf-16%22%3F%3E%0D%0A%3CBosses+xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22+xmlns%3Axsd 

wie zu tun Ich enthülle es?

Antwort

3

Ich stimme mit Hank überein.

Die Antwort auf Ihre eigentliche Frage ist jedoch, dass Ihr Beispiel URL-codiert ist. Ersetzen Sie zum Decodieren jedes% XX durch das Zeichen mit dem Hexadezimalwert 0xXX und + durch Leerzeichen.

urllib.unquote_plus tut dies, und nach dem docs in App Engine ist es

urllib docs: https://docs.python.org/library/urllib.html

Statement, dass urllib unterstützt wird (es könnte noch andere sein): http://code.google.com/appengine/docs/python/urlfetch/overview.html

+0

Danke !, hatte ich schaute urllib kurz an, nahm aber an, dass es url nur HTML nicht decodieren konnte –

0

Ich würde empfehlen, es nicht in erster Linie zu kodieren, wenn der Hauptteil des Posts nur ein XML-Dokument ist.

+0

Danke, aber dann, dass führt zu einer anderen Frage, wie man von Silverlight ohne Encodierung POST (ich verwende WebClient) –

+0

Ich bin nicht wirklich auf .NET, viel weniger Silverlight, aber http://msdn.microsoft.com/en-us/ library/system.net.webclient.uploadstringasync (VS.95) .aspx den Trick machen? –

+0

Danke Hank das war, was ich verwendete, Lösung ist WebRequest zu verwenden, vollständige Antwort hier zu sehen http://stackoverflow.com/questions/664270/google-app-engine-on-silverlight/1119848#1119848 –