Web应用程序调用request.get()更改request.body的内容

时间:2011-11-07 20:11:45

标签: google-app-engine web-applications

我正在使用带有Google App Engine的webapp。

我最近添加了对request.get('variable_name')的电话。这很好,但完全改变了request.body的内容。

仔细检查后,看起来如果我没有拨打request.get(),那么request.body会产生没有任何网址格式的文字。但是在致电request.get()之后,request.body现在包含的文字包含网址格式(很多'%'标志等等)。

我使用webapp错了吗?我不应该混合和匹配这两种信息检索方法吗?

以下是一些示例代码:

class profiles_resource(webapp.RequestHandler):
    def post(self):
        # Value of request.body in debugger: 'str: {"query":"SELECT..."
        token = self.request.get('token')
        # Value of request.body in debugger: '%7B%22query%22%3A%22SELECT..."

1 个答案:

答案 0 :(得分:1)

假设正文是formencoded,

request.get在查询字符串和请求正文中查找请求参数。如果您打算直接阅读正文,请不要使用self.request.getself.request.POST