web-dev-qa-db-fra.com

C # REST API client

J'ai créé avec succès une API PHP REST qui réside sur mon serveur. Je cherche maintenant à créer la connexion côté client à ceci via mon application WPF C #. J'ai trouvé ceci mais mon API nécessite que la clé API soit envoyée via un en-tête HTTP, et je ne vois pas ce que vous pouvez faire pour cela. J'ai également créé un client PHP REST à l'aide de CURL. C'était très simple. J'espérais que quelque chose serait intégré à C # pour gérer les demandes des services REST.

Si quelqu'un pouvait me diriger vers un tutoriel qu'ils ont vu ou une bibliothèque quelque part, j'en serais reconnaissant.

Merci.

25
Joel Kennedy

Jetez un coup d'oeil à RESTSharp . Très puissant et facile à utiliser.

Fonctionne également sur toutes les plateformes: Web, Windows, WCF, Monotouch, Windows Phone

48
Chris Kooken

Vous pouvez simplement utiliser HttpWebRequest ou WebClient pour faire des requêtes Web similaires à celles que vous auriez avec CURL dans votre client PHP ...

Si vous devez gérer des réponses basées sur JSON, JSON.Net est une bibliothèque fantastique.

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

Vous pouvez aussi utiliser HttpClient dans .NET 4.5.
Si vous utilisez la version 4.0, l’API HttpClient est disponible dans le nuget Microsoft.Net.Http .

6
Mike

Vous pouvez également vouloir vérifier Hammock.NET @ http://hammock.codeplex.com/ ; c'est une joie de travailler avec. Vous n'avez vraiment pas besoin de la WCF selon toute probabilité.

5
Wyatt Barnett

Si votre backend API PHP REST est documenté avec Swagger, par exemple, En utilisant swagger-php , vous pouvez utiliser swagger-codegen pour générer les clients API en C #, Java, PHP, Ruby, Python et plus encore en utilisant la spécification Swagger qui décrit votre backend PHP.

1
William Cheng