Jestem zdezorientowany z opakowaniem HttpClient
. Wcześniej był dystrybuowany jako część pakietu NuGet Microsoft.Http.Net
, podczas gdy System.Net.Http
został uznany za starszą. Wygląda na to, że jest odwrotnie: na wszystkich platformach jest świeży pakiet System.Net.Http
, a wersja Microsoft.Net.Http
nie była od jakiegoś czasu aktualizowana i według osób z zespołu programistów firmy Microsoft będzie przestarzała.Obecny status System.Net.Http vs. Microsoft.Net.Http
pytań to:
- możemy zastąpić zależności na
Microsoft.Net.Http
pakietu Nuget z (najnowszej)System.Net.Http
? - Czy starsza platforma .NET 4.0 nadal powinna używać
Microsoft.Net.Http
? Co z platformami innymi niż Windows (iOS, Android)? NowySystem.Net.Http
obsługuje je, ale pamiętam zMicrosoft.Net.Http
musiałem zainstalować dodatkowoMicrosoft.Bcl.Build
iMicrosoft.Bcl
, aby uzyskać wiele platform do pracy.System.Net.Http
nie jest od nich zależny. Czy pakiety Bcl można pominąć? System.Net.Http
brakuje niektórych metod rozszerzenia HTTP, takich jakSupportsPreAuthenticate
, a próba wywołania tych metod powoduje błędy w czasie wykonywania (brakująca metoda). Jak powinniśmy sobie z tym poradzić?
Prawdopodobny duplikat [System.Net.Http kontra Microsoft.Net.Http] (http://stackoverflow.com/questions/31053243/system-net-http-vs-microsoft-net-http) – DonO
Tylko dać możliwy powód zmiany: Funkcje stosu sieciowego różnią się nieco między platformą Windows i innymi systemami operacyjnymi. Miałem problemy z używaniem aplikacji .NET napisanej dla Windows w środowisku Mono na przykład. Zmiana może wskazywać, że ostatecznie możliwe będzie naprawdę niezależne od platformy, dlatego może przenieść obiekty do przestrzeni nazw System. Szukaj referencji do tego pakietu Http z .NET Core, który może odpowiedzieć na twoje pytanie. – flohack