Tôi đang sử dụng ASP.NET Core. Tôi muốn sử dụng HttpClient
nhưng tôi nhận thấy rằng có hai gói NuGet đang được cung cấp. Tôi sử dụng cái nào?System.Net.Http vs Microsoft.Net.Http
Trả lời
Phụ thuộc vào phiên bản. Các System.Net.Http
gói cũ (các 2.0 những người thân) là gói di sản được phản đối ủng hộ Microsoft.Http.Net
theo mô tả:
Legacy gói, System.Net.Http hiện nay bao gồm trong 'Microsoft.Net.Http 'gói.
Chúng tồn tại để cung cấp HttpClient
trong các phiên bản .NET trước đó và Thư viện lớp di động. Bạn nên sử dụng Microsoft.Net.Http
trong trường hợp đó.
Vì bạn đang sử dụng .NET Core, bạn nên sử dụng gói System.Net.Http
mới nhất (ví dụ 4.3.3).
Cập nhật cho csproj
Tính NET Chuẩn 2.0, gói System.Net.HttpClient
đã được bao gồm và có sẵn khi bạn nhắm mục tiêu netstandard2.0
. Nếu vì một lý do nào bạn vẫn muốn tham khảo nó cho cả đầy đủ .NET và .NET Lõi bạn có thể thêm video này vào tập tin csproj của bạn:
<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>
Nếu bạn đang sử dụng project.json
Nếu project.json của bạn nhắm mục tiêu cả .NET và .NET Core đầy đủ, bạn phải thêm assembly System.Net.Http
vào phần tử frameworkAssemblies
. Ví dụ:
"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
}
}
}
Hãy lưu ý rằng họ không có hành vi giống hệt nhau. Phiên bản .NET đầy đủ (4.0.0.0) không tự động nén, trong khi phiên bản .NET Core (4.1.0) có. Vì vậy, nếu bạn sử dụng phiên bản .NET đầy đủ, bạn phải tự cấu hình trình xử lý để sử dụng gzip/deflate compression. Mô tả: https://github.com/dotnet/docs/issues/1054 –
Câu trả lời này tóm tắt những gì một mớ hỗn độn này đã trở thành với .NET Core, .NET Standard và .NET Framework. – Vincent
@vincent Nó không còn là một nỗi đau trong ass hơn là khi mọi người sử dụng mono vv. Nhiều nền tảng luôn có một số điểm đau. – rolls
Microsoft.Net.Http
đòi hỏi thêm Microsoft.Bcl
phụ thuộc.
Đối với điều đó, nếu bạn chỉ nhắm mục tiêu .NET Framework hoặc .NET Core, System.Net.Http
thì tốt. Nếu không, Microsoft.Net.Http
sẽ là lựa chọn tốt hơn vì nó có thể là thế hệ tiếp theo.
Có vẻ rằng MS đã thay đổi tâm trí của họ như bài này ám chỉ ... https: //stackoverflow.com/questions/39016373/the-current-status-of-system-net-http-vs-microsoft-net-http microsoft .net.http chưa được cập nhật từ năm 2015 trong khi system.net.http chỉ là một vài tháng sago (nuget). – smoore4
- 1. Trạng thái hiện tại của System.Net.Http so với Microsoft.Net.Http
- 2. Microsoft.Net.Http vs Microsoft.AspNet.WebApi.Client
- 3. ASP.net Web API và System.Net.Http
- 4. Không thể tải tập tin hoặc lắp ráp 'System.Net.Http
- 5. System.Net.Http không thể được giải quyết trong khung được nhắm mục tiêu hiện tại .NET 4.0
- 6. lỗi Phân tích Mã Không thể tải tập tin hoặc lắp ráp 'System.Net.Http, Version = 2.0.0.0 trong MVC4 Web API
- 7. J2ME VS Android VS iPhone VS Symbian VS Windows CE
- 8. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 9. bigtable vs cassandra vs simpledb vs dynamo vs couchdb vs hypertable vs riak vs hbase, họ có điểm gì chung?
- 10. ACE vs Boost vs Poco vs wxWidgets
- 11. NetSqlAzMan vs AzMan vs (?????)
- 12. & vs * và | vs +
- 13. * vs ** vs *** trong Proguard?
- 14. Mathematica: Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc
- 15. ember.js + tay lái: render vs outlet vs vs vs vs control
- 16. innerText vs innerHtml vs nhãn vs văn bản vs textContent vs outerText
- 17. Htmlentities vs addslashes vs mysqli_real_escape_string
- 18. Delegate.CreateDelegate vs DynamicMethod vs Biểu
- 19. RazorEngine vs RazorTemplates vs RazorMachine
- 20. HttpRequest vs HttpRequestMessage vs HttpRequestBase
- 21. getchar_unlocked() VS scanf() VS cin
- 22. gruntjs vs yeoman vs guard
- 23. pycuda vs theano vs pylearn2
- 24. Coroutine vs Continuation vs Generator
- 25. DataView.RowFilter Vs DataTable.Select() vs DataTable.Rows.Find()
- 26. Shmem vs tmpfs vs mmap
- 27. Processing.js vs. CAKE vs. Raphael.js
- 28. Mongoose.model vs Connection.model vs Model.model
- 29. MySQL vs Firebird vs SQLite
- 30. window.onload vs. body.onload vs. document.onready
Có vẻ như 'System.Net.Http' phụ thuộc vào' Microsoft.Net.Http'. Nhưng sau đó một lần nữa, nó phụ thuộc vào những gì bạn đang cố gắng làm với ứng dụng của bạn. –