谷歌应用引擎给我400个错误的请求状态代码?

时间:2011-12-21 09:38:00

标签: python google-app-engine urllib

在google appengine中:

urlfetch.fetch('http://chart.apis.google.com/chart?chst=d_text_outline&chld=000000|12|h|FFFFFF|_|Tested: 21 Dec') works fine.

但是当我这样做的时候:

text = 'Tested: 21 Dec'  // This ia a variable
my_url = 'http://chart.apis.google.com/chart?chst=d_text_outline&chld=000000|12|h|FFFFFF|_|'+text
urlfetch.fetch(my_url)

现在这给了400 error。我意识到这不是在|之后识别字符。因此,这只会调用'http://chart.apis.google.com/chart?chst=d_text_outline&chld=000000|

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

不确定这是否是问题所在,但您应该在使用它们构建url之前对字符串进行编码:

import urllib
text = urllib.quote_plus('Tested: 21 Dec')  // This ia a variable
my_url = 'http://chart.apis.google.com/chart?chst=d_text_outline&chld=000000|12|h|FFFFFF|_|%s' % text
urlfetch.fetch(my_url)

同样在大多数情况下,最好使用字符串格式'... %s' % (a,b)''.join([a, b])代替a + b