2012-03-10 2 views
11

Sto cercando una libreria per .net, che mi consentirebbe di avere il pieno controllo su ciò che viene inviato via rete. Lo userò per gli esperimenti http. So di HttpWebRequest di C#, e voglio provare qualcosa di diverso, perché non posso controllare tutte le intestazioni (hai mai provato a cambiare il caso dell'intestazione Keep-Alive che invia?) O ignorare selettivamente gli errori del certificato. Voglio sperimentare questa roba. La mia lingua preferita è C#.Buona libreria HTTP di basso livello per .Net

Qualcuno può consigliare una buona libreria http, che, mi permetterebbe di intromettermi con le cose di basso livello quando voglio, ma non mi caricherò con esso quando non lo faccio?

risposta

11

Non penso che sia possibile battere il nuovo client Web rilasciato il 16 febbraio da Microsoft anche se in versione beta. È certamente pronto per l'uso in produzione. Puoi afferrarlo tramite NuGet. Il pacchetto si chiama System.Net.Http.

"Questo pacchetto fornisce un'interfaccia di programmazione per l'applicazione HTTP moderna. Il pacchetto include HttpClient per l'invio di richieste su HTTP, nonché HttpRequestMessage e HttpResponseMessage."

Il nuovo HttpWebClient ti dà il pieno controllo della risposta. È possibile aggiungere intestazioni facile come questo:

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

Ecco una grande introduzione alla nuova HttpClient, http://code.msdn.microsoft.com/Introduction-to-HttpClient-4a2d9cee. Tieni presente che questo è il nuovo HttpWebClient. Ho usato il vecchio client e questo è un vero piacere da usare.

Un rapido aggiornamento per quanto riguarda le licenze. Il Web Api e la porzione HttpClient di esso supportano una licenza "go-live" che consente di creare e distribuire app di produzione con esso.

Aggiornamento

Microsoft ha appena pubblicato alcuni grandi esempi HttpClient su CodePlex a http://aspnet.codeplex.com/SourceControl/list/changesets. Se sei nuovo su HttpClient, dai un'occhiata.

+0

+1. Questo stesso client è incluso nelle versioni di anteprima/beta di .NET 4.5. È l'API di prima classe per eseguire HTTP da un linguaggio .NET. –

+0

Sì, fa parte di .NET 4.5 e MVC 4. – Mark

+1

HttpClient non è affatto a basso livello. In realtà è un wrapper su HttpWebRequest. – imlokesh