Создание FlurlHttpException. .NET
Возник такой кейс, когда было написано расширение для FlurlHttpException, позволяющее действовать определенным образом, в зависимости от статуса ответа. Первое но, с которым я столкнулся - построить объект типа FlurlHttpException оказалось не таким простым делом, ниже приведен код (для около-минимального набора объектов), чтобы просто создать объект исключения.
var call = new FlurlCall()
{
Request = new FlurlRequest
{
Client = new FlurlClient(),
CookieJar = new CookieJar(),
Settings = new FlurlHttpSettings(),
Url = new Url("https://test.dev"),
Verb = HttpMethod.Put,
},
HttpRequestMessage = new HttpRequestMessage
{
Content = new StringContent("Test StringContent")
}
};
call.HttpResponseMessage = new HttpResponseMessage
{
ReasonPhrase = "TestReasonPhrase",
StatusCode = HttpStatusCode.InternalServerError
};
call.Response = new FlurlResponse(call.HttpResponseMessage);
var flurlException = new FlurlHttpException(call);
Теперь, собственно, к проблеме: в моем методе расширения для получения сообщения об ошибке из объекта типа FlurlHttpException я использую следующий метод GetResponseJsonAsync<TError>(); и вот при работе этого метода выбрасывается NullReferenceException. Пытаясь проанализировать в дебагаре состояние созданного объекта и поиска поля, которые вызывает указанную выше ошибку - ну, толкового я ничего не нашел, прошу помочь. Корректный вариант для меня сейчас - чтобы после создания объекта типа FlurlHttpException будет вызван метод GetResponseJsonAsync<TError>(); и получен ответ.
P.s. в доках Flurl ничего не сказано про то, как нужно строить их исключения.