2011-11-07 60 views
0

我正在使用Google App Engine的Web應用程序。Web應用程序調用request.get()更改request.body的內容

我最近添加了一個電話request.get('variable_name')。這工作正常,但完全改變request.body的內容。

仔細檢查之後,看起來好像我沒有撥打request.get(),然後request.body會生成沒有任何網址格式的文本。但在撥打request.get()後,request.body現在包含包含URL格式的文本(很多'%'符號等等)。

我使用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..." 
+0

告訴我們你的代碼 – systempuntoout

+0

@systempuntoout - 沒問題! –

回答

1

request.get會在兩個查詢字符串和請求的主體請求參數,假定身體formencoded。如果您打算直接閱讀身體,請勿使用self.request.getself.request.POST

+0

因此,對request.get的調用可能會改變request.body的內容? –

+0

@DutrowLLC可能。訪問兩者通常都沒有意義 - 爲什麼你需要? –

+0

我在身體中有一個JSON結構。所以我把整個身體變成一個字典對象。然後有通過URL輸入的鍵值對具有不同的用途。 –