2009-11-09 36 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。