Exemple complet simple RestSharp [fermé]

95

J'ai essayé de créer une application Web prototype simple qui utilise RestSharp pour appeler l'API Rest.

Je n'ai pas pu en trouver un bon exemple. Quelqu'un pourrait-il s'il vous plaît partager et me diriger vers la bonne ressource s'il vous plaît? J'ai déjà regardé ce qui suit et ne fournit pas ce que je recherche, c'est-à-dire un exemple entièrement fonctionnel:

http://restsharp.org/ (n'a pas d'application complète avec exemple)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (semble être vieux)

Lors du prototypage, j'obtiens l'erreur ci-dessous pour le code ci-dessous:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *
Nil Pun
la source
@JohnSheehan ressemble à Twillio utilise HttpClient ni restsharp
Tatigo

Réponses:

21

J'ai réussi à trouver un article de blog sur le sujet, qui renvoie à un projet open source qui implémente RestSharp. J'espère que vous pourrez vous aider.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Le billet de blog est un 2 parter, et le projet est ici: https://github.com/ dkarzon / DropNet

Cela pourrait aider si vous aviez un exemple complet de ce qui ne fonctionnait pas. Il est difficile d'obtenir le contexte sur la façon dont le client a été configuré si vous ne fournissez pas le code.

pms1969
la source
salut @pmms, en gros j'essaye de suivre le code d'ici stum.de/2009/12/22/... mais j'obtiens l'erreur que j'ai décrite sur ma question originale ci-dessus.
Nil Pun
Désolé, impossible d'y accéder depuis le réseau d'entreprise. J'essaierai de regarder plus tard.
pms1969
7
OK, en regardant l'exemple, ils utilisent "var", vous utilisez RestResponse. Essayez d'utiliser "var" ou IRestResponse. Ils utilisent également un Execute générique.
pms1969
Enfin un bon exemple, bravo!
Dans l'état actuel des choses, il s'agit d'une réponse par lien uniquement.
Alex
133

Le blog Pawel Sawicz .NET a une très bonne explication et un exemple de code, expliquant comment appeler la bibliothèque;

AVOIR:

var client = new RestClient("192.168.0.1");
var request = new RestRequest("api/item/", Method.GET);
var queryResult = client.Execute<List<Items>>(request).Data;

PUBLIER:

var client = new RestClient("http://192.168.0.1");
var request = new RestRequest("api/item/", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddBody(new Item
{
ItemName = someName,
Price = 19.99
});
client.Execute(request);

SUPPRIMER:

var item = new Item(){//body};
var client = new RestClient("http://192.168.0.1");
var request = new RestRequest("api/item/{id}", Method.DELETE);
request.AddParameter("id", idItem);

client.Execute(request)

La page RestSharp GitHub a un échantillon assez exhaustif au milieu de la page. Pour commencer, installez le package RestSharp NuGet dans votre projet, puis incluez les références d'espace de noms nécessaires dans votre code, puis le code ci-dessus devrait fonctionner (vous évitant peut-être d'avoir besoin d'un exemple d'application complet).

NuGet RestSharp

wonea
la source
1
Il manque un paramètre et des en
Kristina Lex
Votre premier exemple GET ne fonctionne pas:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

En changeant

RestResponse response = client.Execute(request);

à

IRestResponse response = client.Execute(request);

travaillé pour moi.

fractale
la source
3
ouvar response = client.Execute(request) as RestResponse;
JohnTube
1
juste pour laisser quiconque atterrit ici grâce à une recherche Google; le passage à IRestResponse facilite également les appels saisis. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (requête); fonctionne comme prévu mais RestResponse <DummyData> typedResponse = client.Execute <DummyData> (demande); ne fait pas.
mahonya
Dépend de ce que vous êtes retourné. par exemple dans mon cas j'utilise response.Data parce que je fais ça var response = Client.Execute<List<Skill>>(request); Dans ce que je retourne return response.Data; Donc pour moi j'utilise déjà IRestResponse avec var parce que si j'étais explicite ce serait IRestResponse<List<Skill>>pour la réponse - Sinon la réponse est correcte! juste ajouter un commentaire
Tom Stickel