@@ -1661,11 +1661,13 @@ def _DownloadReportAsStream(self, post_body, **kwargs):
16611661 response .code , response .msg )
16621662 return response
16631663 except urllib2 .HTTPError as e :
1664+ # Content from HTTPError instance can be read only one time.
1665+ error = self ._ExtractError (e )
16641666 if _report_logger .isEnabledFor (logging .WARNING ):
16651667 _report_logger .warning (
16661668 'Request Summary: %s' , self ._ExtractRequestSummaryFields (
1667- request , error = e ))
1668- raise self . _ExtractError ( e )
1669+ request , error = error ))
1670+ raise error
16691671
16701672 def _SanitizeRequestHeaders (self , headers ):
16711673 """Removes sensitive data from request headers for use in logging.
@@ -1708,7 +1710,7 @@ def _ExtractRequestSummaryFields(self, request, error=None):
17081710 Args:
17091711 request: a urllib2.Request instance.
17101712 [optional]
1711- error: a urllib2.HttpError instance used to retrieve error details.
1713+ error: a AdWordsReportError instance used to retrieve error details.
17121714
17131715 Returns:
17141716 A dict containing the fields to be output in the summary logs.
@@ -1728,7 +1730,7 @@ def _ExtractRequestSummaryFields(self, request, error=None):
17281730
17291731 if error :
17301732 summary_fields ['isError' ] = True
1731- summary_fields ['errorMessage' ] = error .read ()
1733+ summary_fields ['errorMessage' ] = error .content
17321734 else :
17331735 summary_fields ['isError' ] = False
17341736
0 commit comments