1
1
using System . Net ;
2
2
using System . Net . Http . Json ;
3
+ using System . Text . Json ;
3
4
using Cnblogs . Architecture . Ddd . Cqrs . Abstractions ;
4
5
using Cnblogs . Architecture . Ddd . Domain . Abstractions ;
5
6
using Cnblogs . Architecture . Ddd . Infrastructure . Abstractions ;
@@ -263,20 +264,28 @@ private static async Task<CommandResponse<TResponse, TError>> HandleCommandRespo
263
264
return CommandResponse < TResponse , TError > . Success ( ) ;
264
265
}
265
266
266
- if ( httpResponseMessage . StatusCode == HttpStatusCode . OK )
267
+ try
267
268
{
268
- var result = await httpResponseMessage . Content . ReadFromJsonAsync < TResponse > ( ) ;
269
- return CommandResponse < TResponse , TError > . Success ( result ) ;
270
- }
269
+ if ( httpResponseMessage . StatusCode == HttpStatusCode . OK )
270
+ {
271
+ var result = await httpResponseMessage . Content . ReadFromJsonAsync < TResponse > ( ) ;
272
+ return CommandResponse < TResponse , TError > . Success ( result ) ;
273
+ }
274
+
275
+ var response = await httpResponseMessage . Content . ReadFromJsonAsync < CommandResponse < TResponse , TError > > ( ) ;
276
+ if ( response is null )
277
+ {
278
+ throw new InvalidOperationException (
279
+ $ "Could not deserialize error from response, response: { await httpResponseMessage . Content . ReadAsStringAsync ( ) } ") ;
280
+ }
271
281
272
- var response = await httpResponseMessage . Content . ReadFromJsonAsync < CommandResponse < TResponse , TError > > ( ) ;
273
- if ( response is null )
282
+ return response ;
283
+ }
284
+ catch ( JsonException )
274
285
{
275
286
throw new InvalidOperationException (
276
- $ "Could not deserialize error from response, response: { await httpResponseMessage . Content . ReadAsStringAsync ( ) } ") ;
287
+ $ "Deserialize response failed, status code: { httpResponseMessage . StatusCode } , Body: { await httpResponseMessage . Content . ReadAsStringAsync ( ) } ") ;
277
288
}
278
-
279
- return response ;
280
289
}
281
290
282
291
private static async Task < CommandResponse < TError > > HandleCommandResponseAsync ( HttpResponseMessage message )
@@ -286,13 +295,21 @@ private static async Task<CommandResponse<TError>> HandleCommandResponseAsync(Ht
286
295
return CommandResponse < TError > . Success ( ) ;
287
296
}
288
297
289
- var response = await message . Content . ReadFromJsonAsync < CommandResponse < TError > > ( ) ;
290
- if ( response is null )
298
+ try
299
+ {
300
+ var response = await message . Content . ReadFromJsonAsync < CommandResponse < TError > > ( ) ;
301
+ if ( response is null )
302
+ {
303
+ throw new InvalidOperationException (
304
+ $ "Could not deserialize error from response, response: { await message . Content . ReadAsStringAsync ( ) } ") ;
305
+ }
306
+
307
+ return response ;
308
+ }
309
+ catch ( JsonException )
291
310
{
292
311
throw new InvalidOperationException (
293
- $ "Could not deserialize error from response, response: { await message . Content . ReadAsStringAsync ( ) } ") ;
312
+ $ "Deserialize response failed, status code: { message . StatusCode } , Body: { await message . Content . ReadAsStringAsync ( ) } ") ;
294
313
}
295
-
296
- return response ;
297
314
}
298
315
}
0 commit comments