RestSharp semplice esempio completo [chiuso]


95

Ho provato a creare una semplice applicazione web prototipo che utilizza RestSharp per chiamare Rest API.

Non sono riuscito a trovarne un buon esempio. Qualcuno potrebbe condividere e indirizzarmi alla risorsa giusta per favore? Ho già esaminato quanto segue e non fornisce quello che sto cercando, ovvero un esempio completamente funzionale:

http://restsharp.org/ (non ha un'applicazione completa con l'esempio)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (sembra essere vecchio)

Durante la prototipazione ottengo l'errore di seguito per il codice seguente:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *

@JohnSheehan sembra che twillio usi HttpClient né restsharp
tatigo

Risposte:


21

Sono riuscito a trovare un post sul blog sull'argomento, che si collega a un progetto open source che implementa RestSharp. Si spera di qualche aiuto per te.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Il post del blog è un 2 parter e il progetto è qui: https://github.com/ dkarzon / DropNet

Potrebbe essere utile avere un esempio completo di ciò che non funziona. È difficile ottenere un contesto su come è stato impostato il client se non si fornisce il codice.


ciao @pmms, fondamentalmente sto cercando di seguire il codice da qui stum.de/2009/12/22/… ma ottengo l'errore che ho descritto nella mia domanda originale sopra.
Nil Pun

Spiacenti, impossibile raggiungerlo dall'interno della rete aziendale. Proverò a cercare più tardi.
pms1969

7
OK, guardando l'esempio, usano "var", stai usando RestResponse. Prova a utilizzare "var" o IRestResponse. Stanno anche usando un generico Execute.
pms1969

Finalmente un buon esempio, ciao!

Così com'è ora, questa è una risposta di solo collegamento.
Alex

134

Blog di Pawel Sawicz .NET ha una buona spiegazione e un codice di esempio, che spiega come chiamare la libreria;

OTTENERE:

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

INVIARE:

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

ELIMINA:

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 pagina RestSharp GitHub ha un esempio abbastanza esauriente a metà pagina. Per iniziare, installa il pacchetto RestSharp NuGet nel tuo progetto, quindi includi i riferimenti allo spazio dei nomi necessari nel codice, quindi il codice sopra dovrebbe funzionare (forse annullando la tua necessità di un'applicazione di esempio completa).

NuGet RestSharp


Parametro e intestazioni mancanti
Kristina Lex

Il tuo primo esempio GET non funziona:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G

26

Mutevole

RestResponse response = client.Execute(request);

per

IRestResponse response = client.Execute(request);

ha funzionato per me.


3
oppurevar response = client.Execute(request) as RestResponse;
JohnTube

1
solo per consentire a chiunque arrivi qui tramite una ricerca su Google; passare a IRestResponse aiuta anche con le chiamate digitate. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (richiesta); funziona come previsto ma RestResponse <DummyData> typedResponse = client.Execute <DummyData> (richiesta); non.
Mahonya

Dipende da cosa ti viene restituito. per esempio nel mio caso sto usando response.Data perché sto facendo questo var response = Client.Execute<List<Skill>>(request); In cui ritorno return response.Data; Quindi per me in realtà sto già usando IRestResponse con var perché se fossi esplicito sarebbe IRestResponse<List<Skill>>per la risposta - Altrimenti la risposta è corretta! aggiungendo solo un commento
Tom Stickel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.