Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Consume RESt API from .NET

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?

like image 201
Ajish Avatar asked Dec 03 '09 20:12

Ajish


3 Answers

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();
like image 163
Darrel Miller Avatar answered Nov 17 '22 22:11

Darrel Miller


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());
like image 40
autonomatt Avatar answered Nov 17 '22 23:11

autonomatt


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.

like image 1
Mitchel Sellers Avatar answered Nov 17 '22 23:11

Mitchel Sellers