Google App Engine为何返回400错误请求状态码?
在谷歌的应用引擎上:
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 错误
。我发现它没有识别 |
后面的字符。所以,这样只会调用到 'http://chart.apis.google.com/chart?chst=d_text_outline&chld=000000|
这个地址。
有什么建议吗?
1 个回答
2
不确定这是不是问题,但在用字符串构建网址之前,你应该先对这些字符串进行编码:
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
更好。