2009-11-09 3 views
1

정상 urllib2에서에서 appengine의 urllib2가 헤더 잘 작동합니다 : 파이썬 : 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을 통해 해당 URL을 호출하려고했습니다. 그것은 나를 위해 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 초기에는 Delicious에 액세스하는 것이 AppEngine을 통해 불가능하다는 것을 기억합니다.

관련 문제