Harvest API (http://www.getharvest.com/api)를 사용하고 있습니다. 클라이언트가 할당량을 초과하면 503 응답이 반환됩니다. 그 응답에는 다시 시도하기 전에 얼마나 오래 기다려야하는지 알려주는 "Retry-After"라는 헤더가 있어야합니다.urlib2를 사용하여 오류가 발생했을 때 어떻게 응답 헤더에 액세스합니까?
호출이 실패하면 어떻게 응답 헤더에 액세스합니까? HTTPError 예외를 잡는 중이지만 헤더를 가져 오는 방법을 알아낼 수 없습니다.
응답 본문을 exception.read()로 가져올 수 있지만 헤더가없는 본문입니다.
일부 관련 코드 :
try:
request = urllib2.Request(url=self.uri+url, headers=self.headers)
r = urllib2.urlopen(request)
xml = r.read()
return parseString(xml)
except urllib2.HTTPError as err:
logger.debug("EXCEPTION: %s" % err.read())
감사합니다) (본문 및 err.info를 반환 헤더를 반환합니다. 불행히도, 그들은 실제로 그들이 보낼 것이라고 말하는 헤더를 보내고 있지 않습니다 : ( –
wireshark/firebug로 정확한 응답을 확인 했습니까? 아마도 파이썬의 구문 분석에 결함이 있습니까? –