RestSharp einfaches vollständiges Beispiel [geschlossen]

95

Ich habe versucht, eine einfache Prototyp-Webanwendung zu erstellen, die RestSharp zum Aufrufen der Rest-API verwendet.

Ich konnte kein gutes Beispiel dafür finden. Könnte jemand bitte teilen und mich an die richtige Ressource weiterleiten? Ich habe mir bereits Folgendes angesehen und biete nicht das, wonach ich suche, dh ein voll funktionsfähiges Beispiel:

http://restsharp.org/ (Hat keine vollständige Anwendung mit Beispiel)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (scheint alt zu sein)

Während des Prototyping erhalte ich den folgenden Fehler für den folgenden Code:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *
Nil Pun
quelle
@ JohnSheehan sieht aus wie Twillio verwendet HttpClient noch Restsharp
Tatigo

Antworten:

21

Es ist mir gelungen, einen Blog-Beitrag zu diesem Thema zu finden, der auf ein Open-Source-Projekt verweist, das RestSharp implementiert. Hoffentlich etwas Hilfe für Sie.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Der Blog-Beitrag ist zweiteilig und das Projekt ist hier: https://github.com/ dkarzon / DropNet

Es könnte hilfreich sein, wenn Sie ein vollständiges Beispiel dafür hätten, was nicht funktioniert. Es ist schwierig, einen Kontext zur Einrichtung des Clients zu erhalten, wenn Sie den Code nicht angeben.

pms1969
quelle
hi @pmms, im Grunde versuche ich, dem Code von hier aus zu folgen stum.de/2009/12/22/… aber ich bekomme den Fehler, den ich oben auf meiner ursprünglichen Frage beschrieben habe.
Nil Pun
Ich kann es leider nicht über das Unternehmensnetzwerk erreichen. Ich werde später versuchen zu suchen.
pms1969
7
OK, im Beispiel verwenden sie "var", Sie verwenden RestResponse. Versuchen Sie es entweder mit "var" oder IRestResponse. Sie verwenden auch eine generische Ausführung.
pms1969
Endlich ein anständiges Beispiel, Prost!
Dies ist derzeit nur eine Link-Antwort.
Alex
134

Der .NET-Blog von Pawel Sawicz enthält eine wirklich gute Erklärung und einen Beispielcode, in denen erklärt wird, wie die Bibliothek aufgerufen wird.

BEKOMMEN:

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

POST:

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);

LÖSCHEN:

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)

Die RestSharp GitHub-Seite enthält auf halber Strecke ein ziemlich umfassendes Beispiel. Um zu beginnen, installieren Sie das RestSharp NuGet-Paket in Ihrem Projekt, fügen Sie dann die erforderlichen Namespace-Referenzen in Ihren Code ein, und der obige Code sollte funktionieren (möglicherweise wird Ihre Notwendigkeit einer vollständigen Beispielanwendung zunichte gemacht).

NuGet RestSharp

Wonea
quelle
Dies fehlt Parameter und Header
Kristina Lex
Ihr erstes GET-Beispiel funktioniert nicht:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

Ändern

RestResponse response = client.Execute(request);

zu

IRestResponse response = client.Execute(request);

arbeitete für mich.

fraktal
quelle
3
odervar response = client.Execute(request) as RestResponse;
JohnTube
1
nur um jeden, der hier landet, über eine Google-Suche zu lassen; Der Wechsel zu IRestResponse hilft auch bei den getippten Anrufen. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (Anfrage); funktioniert wie erwartet, aber RestResponse <DummyData> typedResponse = client.Execute <DummyData> (Anfrage); nicht.
Mahonya
Kommt darauf an, was Sie zurückbekommen. In meinem Fall verwende ich zum Beispiel, response.Data weil ich dies tue, var response = Client.Execute<List<Skill>>(request); in dem ich zurückkehre. return response.Data; Für mich verwende ich also bereits IRestResponse mit var, denn wenn ich explizit wäre, wäre es IRestResponse<List<Skill>>eine Antwort - ansonsten ist die Antwort korrekt! nur einen Kommentar hinzufügen
Tom Stickel