I am trying to consume REST API from my .NET Application. This API's are all written in JAVA. I am asked to pass the authentication credentials vis HTTP headers. How can I pass these authentication credentials like 'DATE', 'AUTHORIZATION' and 'Accept' via HTTP headers.
Which class in .NET can I use to accomplish this task. Can anyone help me with this?
Update
This library has now been replaced by http://nuget.org/packages/Microsoft.Net.Http/2.1.10
Use the Microsoft.Http client library that is in WCF REST Starter Kit Preview 2.
Here is how you could use it:
var client = new HttpClient();
client.DefaultHeaders.Authorization = new Credential("ArbitraryAuthHeader");
client.DefaultHeaders.Date = DateTime.Now;
client.DefaultHeaders.Accept.Add("application/xml");
var response = client.Get("http://example.org");
var xmlString = response.Content.ReadAsString();
Just to add a bit of value to this thread (I too was looking for a way to consume a RESTful service and easily provide credentials and came across this thread ... I did not have the "Date" requirement), Aaron Skonnard has written an excellent article on using the WCF REST Starter Kit called:
A Developer's Guide to the WCF REST Starter Kit
There is a very informative section on how to consume a RESTful service using HttpClient. And here's the code snippet to talk to Twitter:
HttpClient http = new HttpClient("http://twitter.com/statuses/");
http.TransportSettings.Credentials =
new NetworkCredential("{username}", "{password}");
HttpResponseMessage resp = http.Get("friends_timeline.xml");
resp.EnsureStatusIsSuccessful();
ProcessStatuses(resp.Content.ReadAsStream());
There are a number of ways taht you can do this but using the WebRequest objects is the fastest if you have just a few calls to complete.
This site, has a great overview of the process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With