๐ŸŒ Basic HTTP Operations

Demonstrates IHttpClientService for simple, type-safe HTTP requests with automatic JSON serialization

GET Request

Fetch a joke from the Joke API using a simple GET request

POST Request

Submit data using a POST request (demo purposes - endpoint may not exist)

๐Ÿ“ Code Examples
GET Request Example
// Simple GET request with type-safe response
var requestUri = new Uri("https://v2.jokeapi.dev/joke/Programming?safe-mode");
var result = await _httpClientService.GetAsync<JokeResponse>(requestUri, CancellationToken.None);

if (result.IsSuccessStatusCode)
{
    var joke = result.Content;
    Console.WriteLine($"Joke: {joke.FullJoke}");
}
POST Request Example
// POST request with payload
var requestUri = new Uri("https://api.example.com/jokes");
var payload = new { joke = "Why do programmers prefer dark mode?", category = "Programming" };

var result = await _httpClientService.PostAsync<object, JokeResponse>(
    requestUri,
payload,
    CancellationToken.None
);

if (result.IsSuccessStatusCode)
{
    Console.WriteLine($"Submitted successfully! ID: {result.Content.Id}");
}
Key Benefits
  • Type Safety: Generic methods ensure compile-time type checking
  • Automatic Serialization: No manual JSON handling required
  • Simple API: Clean, intuitive methods for all HTTP verbs
  • Factory Pattern: Proper HttpClient lifecycle management via IHttpClientFactory
  • Cancellation Support: Built-in cancellation token support