fix(EConnectClient): Behandlung leerer HTTP-Antwortinhalte
- Es wurden Überprüfungen für `ContentLength > 0` hinzugefügt, bevor Antwortinhalte in den Methoden GetAsync, GetListAsAsyncEnumerable und PostAsync deserialisiert werden. - Stellt sicher, dass null zurückgegeben wird, anstatt zu versuchen, leere Antworten zu deserialisieren, wodurch potenzielle Laufzeitfehler vermieden werden.
This commit is contained in:
parent
060ba64268
commit
265862d63d
@ -41,22 +41,24 @@ public class EConnectClient<TError> : IEConnectClient<TError> where TError : cl
|
||||
|
||||
if (res.IsSuccessStatusCode)
|
||||
{
|
||||
var data = await res.Content.ReadFromJsonAsync<TData>(_options.JsonSerializerOptions, cancel);
|
||||
return new ()
|
||||
{
|
||||
Ok = true,
|
||||
StatusCode = res.StatusCode,
|
||||
Data = data
|
||||
Data = (res.Content.Headers.ContentLength > 0)
|
||||
? await res.Content.ReadFromJsonAsync<TData>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel);
|
||||
return new ()
|
||||
{
|
||||
Ok = false,
|
||||
StatusCode = res.StatusCode,
|
||||
Error = error
|
||||
Error = (res.Content.Headers.ContentLength > 0)
|
||||
? await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -70,22 +72,24 @@ public class EConnectClient<TError> : IEConnectClient<TError> where TError : cl
|
||||
|
||||
if (res.IsSuccessStatusCode)
|
||||
{
|
||||
var data = res.Content.ReadFromJsonAsAsyncEnumerable<TData>(_options.JsonSerializerOptions, cancel);
|
||||
return new ()
|
||||
{
|
||||
Ok = true,
|
||||
StatusCode = res.StatusCode,
|
||||
Data = data
|
||||
Data = (res.Content.Headers.ContentLength > 0)
|
||||
? res.Content.ReadFromJsonAsAsyncEnumerable<TData>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel);
|
||||
return new()
|
||||
{
|
||||
Ok = false,
|
||||
StatusCode = res.StatusCode,
|
||||
Error = error
|
||||
Error = (res.Content.Headers.ContentLength > 0)
|
||||
? await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -106,12 +110,13 @@ public class EConnectClient<TError> : IEConnectClient<TError> where TError : cl
|
||||
}
|
||||
else
|
||||
{
|
||||
var error = await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel);
|
||||
return new()
|
||||
{
|
||||
Ok = false,
|
||||
StatusCode = res.StatusCode,
|
||||
Error = error
|
||||
Error = (res.Content.Headers.ContentLength > 0)
|
||||
? await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -132,14 +137,13 @@ public class EConnectClient<TError> : IEConnectClient<TError> where TError : cl
|
||||
}
|
||||
else
|
||||
{
|
||||
TError? error = null;
|
||||
if (res.Content.Headers.ContentLength > 0)
|
||||
error = await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel);
|
||||
return new()
|
||||
{
|
||||
Ok = false,
|
||||
StatusCode = res.StatusCode,
|
||||
Error = error
|
||||
Error = (res.Content.Headers.ContentLength > 0)
|
||||
? await res.Content.ReadFromJsonAsync<TError>(_options.JsonSerializerOptions, cancel)
|
||||
: null
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user