Создание 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 ничего не сказано про то, как нужно строить их исключения.


Ответы (0 шт):