C#:
Wysyłanie żądania HTTP

How to:

W C# używamy HttpClient. Spójrz:

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // Tworzenie klienta
        using HttpClient client = new HttpClient();

        try
        {
            // Wysyłanie żądania GET
            HttpResponseMessage response = await client.GetAsync("http://example.com");
            response.EnsureSuccessStatusCode(); // Rzuca wyjątek, jeśli nie 2XX
            string responseBody = await response.Content.ReadAsStringAsync();

            Console.WriteLine(responseBody);
        }
        catch (HttpRequestException e)
        {
            Console.WriteLine("\nWyjątek:");
            Console.WriteLine(e.Message);
        }
    }
}

Odpowiedź serwera pojawi się w konsoli – jako tekst strony example.com.

Deep Dive

Historia

Klasa HttpClient pojawiła się w .NET Framework 4.5. Zastąpiła starsze narzędzia jak WebRequest – z większym naciskiem na asynchroniczność i wydajność.

Alternatywy

Poza HttpClient, można też używać WebClient albo niskopoziomowych socketów. Jednak WebClient jest uznawany za przestarzały, a sockety wymagają więcej pracy i wiedzy.

Szczegóły

HttpClient jest zoptymalizowany do ponownego użytku. Stwórz raz i używaj wielokrotnie. Pamiętaj o async-await dla płynności i unikania zablokowania wątku. Kontrola błędów jest kluczowa – EnsureSuccessStatusCode i obsługa HttpRequestException.

See Also