从.NET使用RESt API

时间:2009-12-03 20:40:20

标签: .net http api rest header

我正在尝试从.NET应用程序中使用REST API。这个API都是用JAVA编写的。 我被要求通过HTTP标头传递身份验证凭据。如何通过HTTP标头传递“DATE”,“AUTHORIZATION”和“Accept”等身份验证凭据。

我可以使用.NET中的哪个类来完成此任务。任何人都可以帮我这个吗?

感谢您的所有帮助。

Ajish。

4 个答案:

答案 0 :(得分:13)

<强>更新

此库已被http://nuget.org/packages/Microsoft.Net.Http/2.1.10

取代

使用WCF REST Starter Kit Preview 2中的Microsoft.Http客户端库。

以下是如何使用它:

    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();

答案 1 :(得分:4)

只是为这个线程添加一点价值(我也在寻找一种方法来使用RESTful服务并轻松提供凭据并遇到这个帖子......我没有“日期”要求),Aaron Skonnard撰写了一篇关于使用WCF REST Starter Kit的优秀文章:

A Developer's Guide to the WCF REST Starter Kit

有关如何使用HttpClient使用RESTful服务的信息非常丰富的部分。 这是与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());

答案 2 :(得分:1)

您可以通过多种方式执行此操作,但如果只需要完成几个调用,则使用WebRequest对象的速度最快。

This site,对该过程有一个很好的概述。

答案 3 :(得分:0)

尽管名称有些误导,ADO.NET Data Services(.NET 3.5的一部分)包含用于公开和使用基于REST的服务的API。在您的情况下,您可以安全地忽略允许您公开服务并专注于客户端部分的部分。

它支持LINQ和各种优点,允许您像这样查询REST服务:

var selectedOrders = from o in context.Orders
                     where o.Freight > 30
                     orderby o.ShippedDate descending 
                     select o;

关于它的更多信息here。尝试一下 - 到目前为止我对此非常满意。