Я использую ASP.NET 5 и MVC 6. Я хочу использовать HttpClient, но я заметил, что предлагаются два пакета NuGet. Какой из них я использую?
System.Net.Http против Microsoft.Net.Http
Ответ 1
Зависит от версии. Старые пакеты System.Net.Http
(2.0) - это устаревшие пакеты, устаревшие в пользу Microsoft.Http.Net
в соответствии с описанием:
Пакет Legacy, System.Net.Http теперь включен в Пакет Microsoft.Net.Http.
Они существуют для предоставления HttpClient
в предыдущих версиях .NET и библиотеках Portable Class. Вы должны использовать Microsoft.Net.Http
в этом случае.
Поскольку вы используете .NET Core, вы должны использовать последний пакет System.Net.Http
(например, 4.1.0).
Если ваш project.json нацелен как на полный .NET, так и на .NET Core, вам нужно добавить сборку System.Net.Http
в элемент frameworkAssemblies
. Например:
"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
}
}
}
Ответ 2
Microsoft.Net.Http
требует дополнительных зависимостей Microsoft.Bcl
.
Для этого, если вы нацелены только на .NET Framework или .NET Core, System.Net.Http
это хорошо. В противном случае Microsoft.Net.Http
будет лучшим выбором, поскольку это может быть следующее поколение.