2012-05-03 27 views
-1

我正在嘗試使用Google App Engine獲取處理程序映射。webapp處理程序中的百分比編碼不一致

的正則表達式是這樣的:

('/api/1/apps/([-0-9a-zA-Z]+)/values/(.+)', ApiValueHandler) 

當URL看起來像/api/1/apps/50b96eb0/values/New%20note%2Fhello得到數據傳遞給我的處理程序的值是New%20note/hello。正如你所看到的,它正在消除斜線,而不是空間。

是否有一個我在某處丟失的設置,還是我需要做一些自我修復?如果有一些價值,它永遠不會unescape有沒有這些地方的列表?

更新時間:

這是一個測試應用程序,顯示了當開發服務器上的Windows 7與Python 2.5運行此行爲。

main.py

from google.appengine.ext import webapp 
from google.appengine.ext.webapp import util 

class MainHandler(webapp.RequestHandler): 
    def get(self, blah): 
     self.response.out.write(blah) 

app = webapp.WSGIApplication([('/(.*)', MainHandler)], debug=True) 
util.run_wsgi_app(app) 

的app.yaml

application: engineapp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: .* 
    script: main.py 
+0

向我們展示你的代碼;我剛剛在一個示例應用程序中嘗試過這種情況,並且正在進行的操作沒有任何問題。 – systempuntoout

+0

@systempuntoout我已經爲這個問題添加了代碼。 – alnorth29

回答

1

使用urllib.unquote反轉義的字符串。

Example

+0

這樣做是否會冒雙倍的風險,而這些風險在傳遞給處理程序時已經被忽略了? – alnorth29