RestSharp prosty pełny przykład [zamknięty]

96

Próbowałem stworzyć prostą prototypową aplikację internetową, która używa RestSharp do wywołania Rest API.

Nie udało mi się znaleźć ani jednego dobrego przykładu. Czy ktoś mógłby udostępnić i skierować mnie do odpowiedniego źródła? Spojrzałem już na następujące i nie podaje tego, czego szukam, tj. W pełni funkcjonalny przykład:

http://restsharp.org/ (nie ma pełnej aplikacji z przykładem)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (wydaje się być stara)

Podczas prototypowania otrzymuję poniższy błąd dla kodu poniżej:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *
Nil Pun
źródło
@JohnSheehan wygląda jak twillio używa HttpClient ani restsharp
tatigo

Odpowiedzi:

22

Udało mi się znaleźć wpis na blogu na ten temat, który prowadzi do projektu open source, który implementuje RestSharp. Mam nadzieję, że okaże się pomocna.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Wpis na blogu jest partnerem 2, a projekt jest tutaj: https://github.com/ dkarzon / DropNet

Może pomóc, gdybyś miał pełny przykład tego, co nie działa. Trudno jest uzyskać kontekst dotyczący konfiguracji klienta, jeśli nie dostarczysz kodu.

pms1969
źródło
cześć @pmms, w zasadzie próbuję postępować zgodnie z kodem stąd stum.de/2009/12/22/ ... ale pojawia się błąd, który opisałem w moim pierwotnym pytaniu powyżej.
Nil Pun
Przepraszamy, nie mogę połączyć się z siecią firmową. Spróbuję zajrzeć później.
pms1969
7
OK, patrząc na przykład, używają "var", ty używasz RestResponse. Spróbuj użyć „var” lub IRestResponse. Korzystają również z ogólnej metody Execute.
pms1969
Wreszcie przyzwoity przykład, okrzyki!
Tak jak obecnie, jest to odpowiedź zawierająca tylko łącze.
Alex
137

Paweł Sawicz .NET blog ma naprawdę dobre objaśnienie i przykładowy kod, wyjaśniający, jak wywołać bibliotekę;

OTRZYMAĆ:

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

POCZTA:

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

USUNĄĆ:

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)

Strona RestSharp GitHub zawiera dość wyczerpujący przykład w połowie strony. Aby rozpocząć, zainstaluj pakiet RestSharp NuGet w swoim projekcie, a następnie uwzględnij w kodzie niezbędne odwołania do przestrzeni nazw, a powyższy kod powinien działać (prawdopodobnie negując potrzebę pełnej przykładowej aplikacji).

NuGet RestSharp

wonea
źródło
1
Brakuje parametru i nagłówków
Kristina Lex
Twój pierwszy przykład GET nie działa:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

Wymiana pieniędzy

RestResponse response = client.Execute(request);

do

IRestResponse response = client.Execute(request);

pracował dla mnie.

fraktal
źródło
3
lubvar response = client.Execute(request) as RestResponse;
JohnTube,
1
po prostu pozwolić każdemu, kto tu wyląduje, poprzez wyszukiwanie w Google; zmiana na IRestResponse pomaga również w wpisywaniu połączeń. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (żądanie); działa zgodnie z oczekiwaniami, ale RestResponse <DummyData> typedResponse = client.Execute <DummyData> (request); nie.
mahonya
Zależy od tego, co wrócisz. na przykład w moim przypadku używam, response.Data ponieważ robię to, w var response = Client.Execute<List<Skill>>(request); którym zwracam, return response.Data; więc dla mnie właściwie już używam IRestResponse z var, ponieważ gdybym był wyraźny, byłby to IRestResponse<List<Skill>>odpowiedź - w przeciwnym razie odpowiedź jest poprawna! tylko dodanie komentarza
Tom Stickel