Ejemplo completo simple de RestSharp [cerrado]

95

He estado intentando crear una aplicación web prototipo simple que use RestSharp para llamar a Rest API.

No he podido encontrar un buen ejemplo de ello. ¿Alguien podría compartir y dirigirme al recurso correcto, por favor? Ya miré lo siguiente y no proporciono lo que estoy buscando, es decir, un ejemplo completamente funcional:

http://restsharp.org/ (No tiene una aplicación completa con ejemplo)

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

Durante la creación de un prototipo, aparece el siguiente error para el siguiente código:

RestResponse response = client.Execute(request);

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

Respuestas:

21

Me las arreglé para encontrar una publicación de blog sobre el tema, que enlaza con un proyecto de código abierto que implementa RestSharp. Ojalá te ayude.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ La publicación del blog es de 2 socios y el proyecto está aquí: https://github.com/ dkarzon / DropNet

Podría ayudar si tuviera un ejemplo completo de lo que no funciona. Es difícil obtener un contexto sobre cómo se configuró el cliente si no proporciona el código.

pms1969
fuente
hola @pmms, básicamente estoy tratando de seguir el código de aquí stum.de/2009/12/22/… pero obtengo el error que describí en mi pregunta original anterior.
Nil Pun
Lo siento, no puedo acceder a él desde dentro de la red corporativa. Intentaré buscar más tarde.
pms1969
7
Bien, mirando el ejemplo, usan "var", estás usando RestResponse. Intente usar "var" o IRestResponse. También están usando un Execute genérico.
pms1969
Finalmente un ejemplo decente, ¡salud!
Tal como está ahora, esta es una respuesta de solo enlace.
Alex
133

El blog de Pawel Sawicz .NET tiene una explicación muy buena y un código de ejemplo, que explica cómo llamar a la biblioteca;

OBTENER:

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

ENVIAR:

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

ELIMINAR:

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 página RestSharp GitHub tiene una muestra bastante exhaustiva en la mitad de la página. Para comenzar, instale el paquete RestSharp NuGet en su proyecto, luego incluya las referencias de espacio de nombres necesarias en su código, luego el código anterior debería funcionar (posiblemente negando su necesidad de una aplicación de ejemplo completa).

NuGet RestSharp

wonea
fuente
1
Falta el parámetro y los encabezados
Kristina Lex
Su primer ejemplo de GET no funciona:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

Cambiando

RestResponse response = client.Execute(request);

a

IRestResponse response = client.Execute(request);

trabajó para mi.

fractal
fuente
3
ovar response = client.Execute(request) as RestResponse;
JohnTube
1
solo para permitir que cualquiera que aterrice aquí realice una búsqueda en Google; cambiar a IRestResponse también ayuda con las llamadas escritas. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (solicitud); funciona como se esperaba pero RestResponse <DummyData> typedResponse = client.Execute <DummyData> (solicitud); no.
mahonya
Depende de lo que te devuelvan. por ejemplo, en mi caso, estoy usando response.Data porque estoy haciendo esto var response = Client.Execute<List<Skill>>(request); En el que regreso return response.Data; Entonces, para mí, en realidad ya estoy usando IRestResponse con var porque si fuera explícito sería IRestResponse<List<Skill>>para la respuesta; de lo contrario, ¡la respuesta es correcta! solo agregando un comentario
Tom Stickel