2015-05-14 13 views
26

Có cách nào để sử dụng WebClient trong ứng dụng .NET Core không? Nếu tôi xây dựng ứng dụng tôi nhận được lỗi sau:Cách sử dụng WebClient với .NetCore?

Severity Code Description Project File Line 
Error CS0246 The type or namespace name 'WebClient' could not be found (are you missing a using directive or an assembly reference?) 

Tôi nghĩ WebClient không phải là một phần của NET Core, nhưng có bất kỳ thay thế?

+5

Tôi không thấy 'WebClient' bất kỳ nơi nào trên repo corefx, 'HttpClient' có lẽ là sự lựa chọn. –

+2

Tôi đã thêm "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" vào project.json và tôi có thể tạo một HttpClient mới. Và nó hoạt động ngay cả với .NetCore. Có lẽ đó là mục đích duy nhất để xử lý điều này. – TimBoss

+0

Có thể trùng lặp của [System.Net.Webclient không hoạt động 'WebClient' không thể tìm thấy] (http://stackoverflow.com/questions/19164900/system-net-webclient-not-working-webclient-could-not-be -found) –

Trả lời

26

Kể từ .Net Standard 2.0, WebClient hiện khả dụng cho mọi triển khai tiêu chuẩn, bao gồm .Net Core. Tuy nhiên, câu hỏi Stack Overflow "Need help deciding between HttpClient and WebClient" có một số câu trả lời khá tốt là tại sao bạn nên sử dụng số HttpClient để thay thế.

Một trong những hạn chế được đề cập là không có báo cáo tiến độ tích hợp trong HttpClient. Tuy nhiên, bởi vì nó đang sử dụng các luồng, bạn có thể viết luồng của riêng mình. Câu trả lời cho "How to implement progress reporting for Portable HttpClient" cung cấp ví dụ để báo cáo tiến trình của luồng phản hồi.

Nếu bạn đang nhắm mục tiêu các phiên bản trước của tiêu chuẩn, bạn sẽ cần phải sử dụng HttpClient như WebClient không có sẵn trước khi Net chuẩn 2.0.

+0

Nó phải được xây dựng trên đầu trang của System.Net.Http trong phiên bản 1.2.0 https://github.com/dotnet/corefx/issues/11794 – arielorvits

Các vấn đề liên quan