1

私のポストハンドラーでは、メッセージの本文はjsonです。self.request.bodyで、HTMLエンコードされたメッセージを受け取ります。

%7B+%22name%22%3A+%22John+Dao%22%2C+%22Age%22%3A+42+%7D=

ネットワークトラフィックを見ると、ペイロードは実際には次のとおりです。

{ "name": "John Dao", "Age": 42 }

したがって、エンコードはサーバーで行われると確信しています。この文字列をデコードするにはどうすればよいですか、またはどういうわけかjson.loadsにエンコードされたメッセージを受け入れるように指示します。

4

2 に答える 2

7
>>> import urllib
>>> urllib.unquote_plus("%7B+%22name%22%3A+%22John+Dao%22%2C+%22Age%22%3A+42+%7D=")
'{ "name": "John Dao", "Age": 42 }='

WebObのGAE実装は、コンテンツタイプが「application / x-www-urlencoded」であるかのように、POST本文を解析および書き換えようとしているように見えます。URLでデコードされた文字列にも「=」が追加されています。

この場合、クライアントの動作を変更できる場合は、代わりに「application/json」のように設定してみてください。

于 2012-05-01T03:32:25.947 に答える
-2

nameキーとに対応する値を取得する場合は、とAgeを呼び出すだけです。キーが見つからない場合、デフォルトで空の文字列が返されます。self.request.get('name')self.request.get('Age')

于 2012-05-01T00:23:54.893 に答える