Я использую 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 будет лучшим выбором, поскольку это может быть следующее поколение.