๐ 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