2009-11-09 20 views
1

正常urllib2應用服務引擎的urllib2頭正常工作:的Python:從302

>>> import urllib2 
>>> r = urllib2.urlopen(u"http://bit.ly/4ovTZw") 
>>> r.geturl() 
'http://www.writing.com/main/handler/action/show_document/item_id/933413.mp3' 
>>> r.headers.get("Content-Type") 
'audio/mpeg' 

但在應用服務引擎,相同的代碼顯示text/html

def get(self): 
    r = urllib2.urlopen(u"http://bit.ly/4ovTZw") 
    self.response.out.write(r.geturl()) 
    self.response.out.write(r.headers.get("Content-Type")) 
    return 

我可以解決這個問題嗎?這是爲什麼發生?

回答

0

我剛剛試圖通過Interactive Shell致電該特定網址;它適用於我使用urlfetch函數。

Google App Engine/1.4.2 
Python 2.5.2 (r252:60911, May 12 2010, 14:18:27) 
[GCC 4.3.1] 

>>> from google.appengine.api import urlfetch 
>>> result = urlfetch.fetch('http://bit.ly/4ovTZw') 
>>> print result.headers['content-type'] 
audio/mpeg 
0

我知道AppEngine將某些地址列入黑名單 - 請檢查您的響應正文是否有提示。

這也可能是其他方式 - 一些服務黑名單AppEngine ......我不確定。我記得在GAE的早期,通過AppEngine無法訪問Delicious。