Google App Engine дает мне 400 неверный код статуса запроса? - PullRequest
1 голос
/ 21 декабря 2011

В 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 Ответ

2 голосов
/ 21 декабря 2011

Не уверен, что это проблема, но вы должны закодировать свои строки перед построением 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.

...