Хорошая библиотека HTTP низкого уровня для .Net

Я ищу библиотеку для .net, которая позволит мне полностью контролировать то, что отправляется через сеть. Я собираюсь использовать его для http-экспериментов. Я знаю, С# HttpWebRequest, и я хочу попробовать что-то другое, потому что я не могу контролировать все заголовки (пытались ли вы когда-либо изменить заголовок Keep-Alive, который он отправил?) Или выборочно игнорировать ошибки сертификата. Я хочу поэкспериментировать с этим. Мой язык выбора - С#.

Может кто-нибудь порекомендовать хорошую http-библиотеку, которая позволила бы мне вмешиваться в материал низкого уровня, когда захочу, но не обременяю меня этим, когда я этого не делаю?

Ответ 1

Я не думаю, что вы можете победить нового веб-клиента, который был выпущен 16 февраля Microsoft хотя и в бета-форме. Это конечно готово для использования в производстве. Вы можете захватить его через NuGet. Пакет называется System.Net.Http.

"Этот пакет предоставляет интерфейс программирования для современного HTTP-приложения. Пакет включает HttpClient для отправки запросов по HTTP, а также HttpRequestMessage и HttpResponseMessage.

Новый HttpWebClient дает вам полный контроль над ответом. Вы можете добавить заголовки так же просто, как это:

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

Здесь большое введение в новый HttpClient, http://code.msdn.microsoft.com/Introduction-to-HttpClient-4a2d9cee. Имейте в виду, что это новый HttpWebClient. Я использовал старого клиента, и это очень приятно использовать.

Быстрое обновление относительно лицензирования. Web Api и часть HttpClient поддерживают лицензию "go-live", которая позволяет вам создавать и развертывать производственные приложения с ней.

Обновление

Microsoft опубликовала несколько замечательных примеров HttpClient на CodePlex в http://aspnet.codeplex.com/SourceControl/list/changesets. Если вы новичок в HttpClient, проверьте их.