Newer
Older
ProblemDetails / ConsoleApp1 / Program.cs
@Derek Comartin Derek Comartin on 21 May 2024 1 KB Init
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var httpClient = new HttpClient(new ProblemDetailsHttpMessageHandler());
            try
            {
                var result = await httpClient.PostAsJsonAsync("https://localhost:5001/Demo", new {});
            }
            catch (ProblemDetailsException problemDetailsException)
            {
                Console.WriteLine($"Title: {problemDetailsException.Details.Title}");
                Console.WriteLine($"Detail: {problemDetailsException.Details.Detail}");
                Console.WriteLine($"Instance: {problemDetailsException.Details.Instance}");
                Console.WriteLine($"Type: {problemDetailsException.Details.Type}");
                Console.WriteLine($"Status: {problemDetailsException.Details.Status}");

                if (problemDetailsException.Details.Type == "https://example.net/validation-error")
                {
                    Console.WriteLine($"Validation Errors:");
                    var validationErrors = problemDetailsException.Details.ToValidationProblemDetails();
                    foreach (var invalidParam in validationErrors.InvalidParams)
                    {
                        Console.WriteLine($"{invalidParam.Name} - {invalidParam.Reason}");
                    }
                }

                Console.ReadKey();
            }
        }
    }
}