it-roy-ru.com

C # REST API-клиент

Я успешно создал API PHP REST, который находится на моем сервере. Сейчас я хочу создать клиентское соединение с этим через мое приложение WPF C #. Я обнаружил это но мой API требует, чтобы ключ API был отправлен через заголовок HTTP, и я не вижу, что вы можете сделать это в этом. Я также создал клиент PHP REST с использованием CURL, и это было очень просто, и я надеялся, что в C # будет что-то встроенное для обработки запросов к службам REST.

Если бы кто-то мог указать мне направление учебника, которое они видели, или библиотеку где-нибудь, я был бы благодарен.

Благодарю.

25
Joel Kennedy

Взгляните на RESTSharp . Очень мощный и простой в использовании.

Работает также на всех платформах: Интернет, Windows, WCF, Monotouch, Windows Phone

48
Chris Kooken

Вы можете просто использовать HttpWebRequest или WebClient , чтобы делать веб-запросы, как если бы вы использовали CURL в вашем PHP клиенте ...

Если вам нужно иметь дело с ответами на основе JSON, JSON.Net - это фантастическая библиотека.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://a/rest/uri");
request.Method = "POST";
request.Headers.Add("Authorization: OAuth " + accessToken);
string postData = string.Format("param1=something&param2=something_else");
byte[] data = Encoding.UTF8.GetBytes(postData);

request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "application/json";
request.ContentLength = data.Length;

using (Stream requestStream = request.GetRequestStream())
{
    requestStream.Write(data, 0, data.Length);
}

try
{
    using(WebResponse response = request.GetResponse())
    {
        // Do something with response
    }
}
catch (WebException ex)
{
    // Handle error
}
13
Neil M

Также вы можете использовать HttpClient в .NET 4.5.
Если вы используете .NET 4.0, API HttpClient доступен в Microsoft.Net.Http nuget.

6
Mike

Вы также можете проверить Hammock.NET @ http://hammock.codeplex.com/ ; с ним приятно работать. Вам действительно не нужен WCF по всей вероятности.

5
Wyatt Barnett

Если ваш бэкэнд API PHP REST задокументирован с помощью Swagger, например, используя swagger-php , вы можете использовать swagger-codegen для генерации клиентов API в C #, Java, PHP, Ruby, Python и других, используя спецификацию Swagger, которая описывает ваш PHP бэкэнд.

1
William Cheng