@@ -77,7 +77,11 @@ async def _make_response(self, request_parameters: dict, user: BaseUser):
77
77
async with aiohttp .request (** request_parameters ) as response :
78
78
response .raise_for_status ()
79
79
self ._log_response (user , response )
80
- return response
80
+ try :
81
+ return await response .json ()
82
+ except aiohttp .client_exceptions .ContentTypeError :
83
+ return await response .content .read ()
84
+ return None
81
85
except (aiohttp .ServerTimeoutError , asyncio .TimeoutError ):
82
86
self .error = self .TIMEOUT
83
87
except aiohttp .ClientError :
@@ -118,11 +122,7 @@ async def process_result(self, response, user, text_preprocessing_result, params
118
122
behavior_description = user .descriptions ["behaviors" ][self .behavior ] if self .behavior else None
119
123
action = None
120
124
if self .error is None :
121
- try :
122
- data = await response .json ()
123
- except aiohttp .client_exceptions .ContentTypeError :
124
- data = None
125
- user .variables .set (self .store , data )
125
+ user .variables .set (self .store , response )
126
126
action = behavior_description .success_action if behavior_description else None
127
127
elif behavior_description is not None :
128
128
if self .error == self .TIMEOUT :
@@ -139,6 +139,6 @@ async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreproces
139
139
request_parameters = self ._get_request_params (user , text_preprocessing_result , params )
140
140
self ._log_request (user , request_parameters )
141
141
response = await self ._make_response (request_parameters , user )
142
- if response :
143
- log ("response data: %(body)s" , params = {"body" : response . json () }, level = "INFO" )
142
+ if response is not None :
143
+ log ("response data: %(body)s" , params = {"body" : response }, level = "INFO" )
144
144
return await self .process_result (response , user , text_preprocessing_result , params )
0 commit comments