2013-03-09 174 views
0

我遇到了使用httplib的request()方法的問題。這是一個非常奇怪的問題。我的代碼如下所示:Python:httplib請求()不起作用

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"而不是其他字符串連接),然後打印出它應該的值。在上面的代碼中連接後,我通過執行print query得到了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的類型以確保它是一個字符串。但他們給出了不同的結果。有任何想法嗎?謝謝!

+0

什麼'print r1.status,r1.length'用你'錯誤'的查詢說? – robertklep 2013-03-09 08:28:56

+0

'400'和'0'分別爲 – pauliwago 2013-03-09 08:33:05

+0

當我用第二種實現的時候,我分別得到了'200'和'1756' – pauliwago 2013-03-09 08:37:30

回答

0

事實證明mline [3]最後有一些看不見的字符。它不是一個換行符或一個空格......但我只是先將它轉換爲一個int,然後將它轉換回一個字符串,多餘的字符消失了,我的問題消失了。感謝你的幫助。