尝试解码GAE上的非urlencoded字符串错误但在本地开发环境中没有错误

时间:2015-01-13 01:27:03

标签: python google-app-engine python-2.7 urlfetch flask-oauthlib

我正在使用Flask-OAuthlib,它在我的本地开发环境中运行良好,但是一旦我将代码部署到实时GAE环境,我就会收到以下错误:

File "/base/data/home/apps/s~xxxx/test-20141215.381476653039842303/lib/oauthlib/common.py", line 129, in urldecode
    raise ValueError(error % (set(query) - urlencoded, query))
ValueError: Error trying to decode a non urlencoded string. Found invalid characters: set([u'!']) in the string: 

使用相同的密码,包括!角色在本地工作正常,我不明白部署应用程序时的问题。

我在本地使用Python 2.7.6。

对于我使用的网址请求: uri = add_params_to_uri(url, params)是oauthlib.common的一部分

1 个答案:

答案 0 :(得分:0)

此特定问题的一个解决方案是编辑oauthlib / common.py第110行:

变化:

urlencoded = set(always_safe) | set('=&;%+~,*@')

要:

urlencoded = set(always_safe) | set('=&;%+~,*@!')

然后! GAE现场环境也接受角色。