Używam ASP.NET Core. Chcę użyć HttpClient
, ale zauważyłem, że są oferowane dwa pakiety NuGet. Którego używam?System.Net.Http vs Microsoft.Net.Http
Odpowiedz
zależy od wersji. Stare System.Net.Http
pakiety (te 2.0 nich) są starsze pakiety, które są przestarzałe na rzecz Microsoft.Http.Net
zgodnie z opisem:
pakiecie Legacy, System.Net.Http jest obecnie zawarte w „Microsoft.Net.Http "pakiet.
Istnieją one w celu zapewnienia HttpClient
w poprzednich wersjach .NET i bibliotekach przenośnych. W takim przypadku powinieneś użyć Microsoft.Net.Http
.
Ponieważ używasz .NET Core należy użyć najnowszej System.Net.Http
pakiet (np. 4.3.3).
Aktualizacja dla csproj
Jako standard .NET 2.0, pakiet System.Net.HttpClient
jest już włączone i dostępne w przypadku kierowania netstandard2.0
. Jeśli z jakiegoś powodu nadal chcesz odwoływać zarówno dla pełnego .NET i .NET Rdzenia można dodać do pliku csproj:
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<!-- // HttpClient for full .NET -->
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<!-- // HttpClient for .NET Core -->
<PackageReference Include="System.Net.Http" Version="4.3.3" />
</ItemGroup>
Jeśli używasz project.json
Jeśli twoje cele project.json zarówno pełne .NET i .NET Core, trzeba dodać zespół System.Net.Http
do elementu frameworkAssemblies
. Na przykład:
"frameworks": {
"net451": {
"frameworkAssemblies": {
"System.Net.Http": "4.0.0.0" // HttpClient for full .NET
}
},
"netstandard1.3": {
"dependencies": {
"System.Net.Http": "4.1.0", // HttpClient for .NET Core
}
}
}
Należy pamiętać, że nie mają dokładnie takiego samego zachowania. Pełna wersja .NET (4.0.0.0) nie wykonuje automatycznej kompresji, natomiast wersja .NET Core (4.1.0). Więc jeśli używasz pełnej wersji .NET, musisz ręcznie skonfigurować program obsługi, aby używał kompresji gzip/deflate. Opis: https://github.com/dotnet/docs/issues/1054 –
Ta odpowiedź podsumowuje, jaki bałagan stał się z .NET Core, .NET Standard i .NET Framework. – Vincent
@vincent To nie jest bolesny tyłek, gdy ludzie używają mono itp. Platforma multi zawsze ma kilka punktów bólu. – rolls
Microsoft.Net.Http
wymaga dodatkowych Microsoft.Bcl
zależności.
W tym przypadku, jeśli jesteś ukierunkowany tylko na .NET Framework lub .NET Core, dobrze jest przejść na System.Net.Http
. W przeciwnym razie lepszym wyborem byłby numer Microsoft.Net.Http
, ponieważ może to być kolejne pokolenie.
Wygląda na to, że MS zmieniło zdanie, ponieważ ten post nawiązuje do ... https: //stackoverflow.com/questions/39016373/the-current-status-of-system-net-http-vs-microsoft-net-http microsoft .net.http nie był aktualizowany od 2015 roku, podczas gdy system.net.http to tylko kilka miesięcy sago (nuget). – smoore4
- 1. Obecny status System.Net.Http vs. Microsoft.Net.Http
- 2. Microsoft.Net.Http kontra Microsoft.AspNet.WebApi.Client
- 3. Nie można załadować pliku lub zestawu „System.Net.Http
- 4. Web API: System.Net.Http wersja 2.0.0.0 Nie znaleziono
- 5. Nie można załadować pliku lub zestawu System.Net.Http w wersji 4.1.1.0
- 6. metoda vs funkcja vs procedura vs klasa?
- 7. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 8. Opa vs Dart vs Haxe vs coffeescript
- 9. VS 2008 vs VS 2008 Express
- 10. Strona vs Extent vs. Segment vs. Tabele
- 11. Crystalspace vs. Irrlicht vs. .....?
- 12. NetSqlAzMan vs AzMan vs (?????)
- 13. SpiderMonkey vs JavaScriptCore vs?
- 14. Pakiet "System.Net.Http 4.0.0" wymaga od klienta NuGet wersji "3.0" lub wyższej
- 15. Nie można załadować pliku lub zestawu "System.Net.Http, wersja = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a"
- 16. Przechodząc zawartości ciała podczas wywoływania metody Delete Web API z wykorzystaniem System.Net.Http
- 17. Klasa vs pakiet vs moduł vs komponent vs kontener kontra serwis vs platforma w świecie Java
- 18. Zmierz czas w Linuksie - czas vs zegar vs getrusage vs clock_gettime vs gettimeofday vs timespec_get?
- 19. IDataErrorInfo vs ValidationRule vs Exception
- 20. Boo vs C# vs Python?
- 21. DbConnection vs OleDbConnection vs OdbcConnection
- 22. Matlab vs Aforge vs OpenCV
- 23. DDS vs AMQP vs ZeroMQ
- 24. ScheduledExecutorService vs Timer vs Handler
- 25. flume vs kafka vs inni
- 26. ActiveMQ vs Apollo vs Kafka
- 27. getBBox() vs getBoundingClientRect() vs getClientRects()
- 28. Object vs Class vs Function
- 29. Wskaźniki vs auto_ptr vs shared_ptr
- 30. fadeIn fadeOut vs vs fadeTo
Wygląda 'System.Net.Http' zależy' Microsoft.Net.Http'. Ale znowu to zależy od tego, co próbujesz zrobić ze swoją aplikacją. –