2012-03-10 28 views
11

Tôi đang tìm thư viện cho .net, cho phép tôi có toàn quyền kiểm soát những gì được gửi qua mạng. Tôi sẽ sử dụng nó cho các thí nghiệm http. Tôi biết về HttpWebRequest của C#, và tôi muốn thử một cái gì đó khác, bởi vì tôi không thể kiểm soát tất cả các tiêu đề (có bao giờ bạn đã cố gắng thay đổi trường hợp của tiêu đề Keep-Alive mà nó gửi không?) Hoặc bỏ qua các lỗi chứng chỉ. Tôi muốn thử nghiệm với công cụ này. Ngôn ngữ tôi chọn là C#.Thư viện http cấp thấp tốt cho .Net

Ai có thể giới thiệu thư viện http tốt, thư viện nào có thể giúp tôi can thiệp vào nội dung cấp thấp khi tôi muốn, nhưng sẽ không làm phiền tôi khi tôi không làm như vậy?

Trả lời

11

Tôi không nghĩ rằng bạn có thể đánh bại Web Client mới được phát hành vào ngày 16 tháng 2 bởi Microsoft mặc dù ở dạng beta. Nó chắc chắn đã sẵn sàng để sử dụng trong sản xuất. Bạn có thể lấy nó qua NuGet. Gói này được gọi là System.Net.Http.

"Gói này cung cấp giao diện lập trình cho ứng dụng HTTP hiện đại. Gói này bao gồm HttpClient để gửi yêu cầu qua HTTP, cũng như HttpRequestMessage và HttpResponseMessage."

HttpWebClient mới cung cấp cho bạn toàn quyền kiểm soát phản hồi. Bạn có thể thêm tiêu đề dễ dàng như sau:

 var response = new HttpResponseMessage<MyModel>(model, HttpStatusCode.Ok); 
     response.Headers.Add("test", "test"); 

Dưới đây là phần giới thiệu tuyệt vời cho HttpClient mới, http://code.msdn.microsoft.com/Introduction-to-HttpClient-4a2d9cee. Hãy ghi nhớ đây là mới HttpWebClient. Tôi đã sử dụng máy khách cũ và đây là một niềm vui thực sự để sử dụng.

Cập nhật nhanh về cấp phép. Web Api và phần HttpClient của nó, hỗ trợ giấy phép “đi-sống” cho phép bạn xây dựng và triển khai các ứng dụng sản xuất với nó.

Cập nhật

Microsoft vừa mới công bố một số ví dụ HttpClient lớn trên CodePlex tại http://aspnet.codeplex.com/SourceControl/list/changesets. Nếu bạn mới sử dụng HttpClient, hãy kiểm tra chúng.

+0

+1. Khách hàng tương tự này được bao gồm trong bản phát hành bản xem trước/beta của .NET 4.5. Đây là API lớp đầu tiên để thực hiện HTTP từ một ngôn ngữ .NET. –

+0

Có, đó là một phần của .NET 4.5 và MVC 4. – Mark

+1

HttpClient không phải là cấp thấp. Trong thực tế nó là một wrapper xung quanh HttpWebRequest. – imlokesh