Exemplo completo simples RestSharp [fechado]

95

Tenho tentado criar um protótipo de aplicativo da web simples que usa RestSharp para chamar Rest API.

Não consegui encontrar um bom exemplo disso. Alguém poderia compartilhar e me direcionar para o recurso certo, por favor? Já observei o seguinte e não forneci o que estou procurando, ou seja, um exemplo totalmente funcional:

http://restsharp.org/ (não tem aplicativo completo com exemplo)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (parece ser antigo)

Durante a prototipagem, recebo o erro abaixo para o código abaixo:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *
Nil Pun
fonte
@JohnSheehan parece que twillio usa HttpClient nem restsharp
tatigo

Respostas:

21

Consegui encontrar uma postagem no blog sobre o assunto, que leva a um projeto de código aberto que implementa RestSharp. Esperançosamente de alguma ajuda para você.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ A postagem do blog tem 2 partes e o projeto está aqui: https://github.com/ dkarzon / DropNet

Pode ajudar se você tiver um exemplo completo do que não está funcionando. É difícil entender como o cliente foi configurado se você não fornecer o código.

pms1969
fonte
oi @pmms, basicamente estou tentando seguir o código daqui stum.de/2009/12/22/… mas recebo o erro que descrevi na minha pergunta original acima.
Nil Pun
Não é possível acessá-lo de dentro da rede corporativa. Vou tentar olhar mais tarde.
pms1969
7
OK, olhando para o exemplo, eles usam "var", você está usando RestResponse. Tente usar "var" ou IRestResponse. Eles também estão usando um Execute genérico.
pms1969
Finalmente um exemplo decente, saúde!
Como está agora, esta é uma resposta apenas com link.
Alex
134

O blog Pawel Sawicz .NET tem uma explicação realmente boa e um código de exemplo, explicando como chamar a biblioteca;

OBTER:

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

POSTAR:

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

EXCLUIR:

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)

o página RestSharp GitHub tem um exemplo bastante exaustivo no meio da página. Para começar, instale o pacote RestSharp NuGet em seu projeto e, em seguida, inclua as referências de namespace necessárias em seu código, então o código acima deve funcionar (possivelmente negando sua necessidade de um aplicativo de exemplo completo).

NuGet RestSharp

wonea
fonte
Faltam parâmetros e cabeçalhos
Kristina Lex
Seu primeiro exemplo GET não funciona:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

Mudando

RestResponse response = client.Execute(request);

para

IRestResponse response = client.Execute(request);

trabalhou para mim.

fractal
fonte
3
ouvar response = client.Execute(request) as RestResponse;
JohnTube
1
só para deixar quem chegar aqui através de uma busca no google; mudar para IRestResponse também ajuda com as chamadas digitadas. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (solicitação); funciona como esperado, mas RestResponse <DummyData> typedResponse = client.Execute <DummyData> (solicitação); não.
mahonya
Depende do que você retornou. por exemplo, no meu caso estou usando response.Data porque estou fazendo isso var response = Client.Execute<List<Skill>>(request); Em que eu retorno return response.Data; Então, para mim, na verdade, já estou usando IRestResponse com var porque se eu fosse explícito seria IRestResponse<List<Skill>>para resposta - Caso contrário, a resposta está correta! apenas adicionando um comentário
Tom Stickel