从.NET使用RESt API

问题描述 投票:0回答:4

我正在尝试从我的 .NET 应用程序使用 REST API。这个API都是用JAVA编写的。 系统要求我通过 HTTP 标头传递身份验证凭据。如何通过 HTTP 标头传递这些身份验证凭据,例如“日期”、“授权”和“接受”。

我可以使用 .NET 中的哪个类来完成此任务。谁能帮我解决这个问题吗?

.net rest http-headers
4个回答
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();

4
投票

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

WCF REST 入门套件开发人员指南

有一个内容非常丰富的部分介绍了如何使用 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());

1
投票

有多种方法可以做到这一点,但如果您只需完成几次调用,那么使用 WebRequest 对象是最快的。

这个网站,对整个过程有很好的概述。


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;

还有更多相关信息这里。尝试一下 - 到目前为止我对此非常满意。

© www.soinside.com 2019 - 2024. All rights reserved.