我正在尝试从.NET应用程序中使用REST API。这个API都是用JAVA编写的。 我被要求通过HTTP标头传递身份验证凭据。如何通过HTTP标头传递“DATE”,“AUTHORIZATION”和“Accept”等身份验证凭据。
我可以使用.NET中的哪个类来完成此任务。任何人都可以帮我这个吗?
感谢您的所有帮助。
Ajish。
答案 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。尝试一下 - 到目前为止我对此非常满意。