I want to build a .NET REST client using C#, and although i read lots of posts here about the common practices regarding REST, i could not make sure about something. I’ve read lots of REST client examples and most of them were using just HttpWebRequest/Response classes to make the requests and receive the responses. What i want to ask is, what do you think the disadvantages would be if i consume REST services simply this way. I have not used WCF before and i don’t have much idea about it either, so i cannot make a comparison by myself.
Using this REST client, i will be getting, updating, posting some data to a device. So, besides from the ease or complexity of the development, my biggest concern is about performance. Do you think the HttpClient in WCF would make a meaningful difference?
Thx in advance..
The HttpClient in the WCF REST starter kit is based on HttpWebRequest and HttpWebResponse. The only dependency it has on WCF is with the HttpContent extension methods that are the in Extensions Dll.
I would recommend using the Microsoft.Http.HttpClient because it adds a HUGE amount of functionality for doing HTTP properly. All of the HTTP headers have wrappers. The HttpContent class takes care of reading and writing from the Request and Response stream. It will buffer the response so that you can read the response multiple times. It has support to make doing async calls much easier.
If you follow the pattern of using extension methods to convert to your native data formats you will find the library really easy work with.