Клуб API Карт

Проблема с геокодером

truetug
2 октября 2009, 23:48
Пытаюсь сделать запрос в геокодер Питоном, как-то так: url = 'http://geocode-maps.yandex.ru/1.x/' YANDEX_MAPS_KEY = '...' # Ключ для localhost.loc data = u'Город Астрахань, улица Рыбинская, дом 3а' # Приходит в юникоде import urllib params = urllib.urlencode({'geocode': data.encode('cp1251'), 'key': YANDEX_MAPS_KEY, 'results': 1}) # Кодируем параметры fullurl = '%s?%s' % (url, params) response = urllib.urlopen(url, params) # Делаем запрос xml = response.read() response.close() В xml попадает: <error> <status>400</status> <message>missing geocode parameter</message> </error> При вставке fullurl в адресную строку браузера, приходит нормальный ответ Причем раньше тот же код работал нормально. Подскажите, в чем моя ошибка?
3 комментария
Подписаться на комментарии к посту
Я в Питоне не силен, но похоже у вас запрос идет в неправильной кодировке. Либо в заголовке нужно указать что вы с windows-1251 работаете, либо отсылать данные в UTF-8
Результат от кодировки не зависит, пробовал и так и эдак - не выходит.
Попробуйте анализатором http запросов посмотреть что питон посылает.наверняка сразу увидите ошибку