Использовать RESt API из .NET - PullRequest
       10

Использовать RESt API из .NET

9 голосов
/ 03 декабря 2009

Я пытаюсь использовать REST API из моего приложения .NET. Все эти API написаны на JAVA. Меня просят передать учетные данные аутентификации через заголовки HTTP. Как я могу передать эти учетные данные аутентификации как «ДАТА», «АВТОРИЗАЦИЯ» и «Принять» через заголовки HTTP.

Какой класс в .NET я могу использовать для выполнения этой задачи. Кто-нибудь может мне помочь с этим?

Будем благодарны за вашу помощь.

Ajish.

Ответы [ 4 ]

13 голосов
/ 04 декабря 2009

Обновление

Эта библиотека была заменена на http://nuget.org/packages/Microsoft.Net.Http/2.1.10


Используйте клиентскую библиотеку Microsoft.Http, которая находится в Предварительный просмотр стартового комплекта WCF 2 .

Вот как это можно использовать:

    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 голосов
/ 16 декабря 2009

Просто чтобы добавить немного ценности в этот поток (я тоже искал способ использовать сервис RESTful и легко предоставить учетные данные и наткнулся на этот поток ... У меня не было требования "Дата"), Аарон Сконнард написал отличную статью об использовании стартового комплекта WCF REST под названием:

Руководство разработчика по стартовому комплекту WCF REST

Существует очень информативный раздел о том, как использовать сервис RESTful с использованием HttpClient. А вот фрагмент кода для общения в Твиттере:

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 голос
/ 03 декабря 2009

Существует несколько способов сделать это, но использование объектов WebRequest является самым быстрым, если вам нужно выполнить всего несколько вызовов.

Этот сайт , имеет большой обзор процесса.

0 голосов
/ 04 декабря 2009

Несмотря на несколько вводящее в заблуждение название, ADO.NET Data Services (который является частью .NET 3.5) содержит API-интерфейсы для предоставления и использования служб на основе REST. В вашем случае вы можете спокойно игнорировать ту часть, которая позволяет вам предоставлять услуги и концентрироваться на клиентской части.

Он поддерживает LINQ и всевозможные добрые дела, что позволяет вам запрашивать службу REST следующим образом:

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

Здесь больше об этом здесь . Попробуйте - я до сих пор доволен этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...