Python: httplib request() не работает

У меня проблемы с использованием метода httplib request(). Это действительно странная проблема. Мой код выглядит так:

query = "/search.json?q=&geocode=" + slat + "," + slong + "," + mline[2] + "km&rpp=" + mline[3]
conn = httplib.HTTPConnection("search.twitter.com")
conn.request("GET", query) #request here
r1 = conn.getresponse()
preresult = r1.read()

print preresult

Так что проблема в том, что ничего не распечатывается. query состоит из тонны других объединенных строк. Что действительно странно, так это то, что если я устанавливаю query равным фактическому значению строки (то есть фактически устанавливаю его равным, скажем, "/search.json?q=&geocode=27.5916,086.5640,100km&rpp=2", в отличие от множества других объединенных строк), то он печатается так, как должен. Я получил это значение query, выполнив print query после конкатенации в приведенном выше коде. Итак, чтобы все было ясно, следующее работает нормально (используя значение print query сверху):

query = "/search.json?q=&geocode=27.5916,086.5640,100km&rpp=2"
conn = httplib.HTTPConnection("search.twitter.com")
conn.request("GET", query) #request here
r1 = conn.getresponse()
preresult = r1.read()

print preresult

Значение query должно быть одинаковым в обеих реализациях. Я проверил тип query в первой реализации, чтобы убедиться, что это строка. Но они дают разные результаты. Любые идеи? Спасибо!


person pauliwago    schedule 09.03.2013    source источник
comment
Что print r1.status, r1.length говорит о вашем "неверном" запросе?   -  person robertklep    schedule 09.03.2013
comment
400 и 0 соответственно   -  person pauliwago    schedule 09.03.2013
comment
Когда я делаю это со второй реализацией, я получаю 200 и 1756 соответственно.   -  person pauliwago    schedule 09.03.2013
comment
Я получаю 200 и 0 для обеих реализаций, хотя в обеих реализациях мне приходилось догадываться о каком-то отсутствующем коде, потому что ни один из них не является полным примером. Публикуйте полные короткие рабочие примеры, демонстрирующие воспроизводимое поведение.   -  person Mark Tolonen    schedule 09.03.2013
comment
Я получаю 200 и переменный размер (что и следовало ожидать) для обоих (я использовал значения из второго в качестве значений переменных, используемых в первом). 400 означает Bad Request, кстати.   -  person robertklep    schedule 09.03.2013


Ответы (1)


Оказывается, у mline[3] в конце был какой-то невидимый символ. Это не была новая строка или пробел... но я просто сначала преобразовал ее в int, а затем преобразовал обратно в строку, и лишний символ исчез, и моя проблема исчезла. Спасибо за вашу помощь.

person pauliwago    schedule 09.03.2013