Простий повний приклад RestSharp [закрито]


95

Я намагався створити простий прототип веб-програми, яка використовує RestSharp для виклику Rest API.

Я не зміг знайти одного хорошого прикладу цього. Чи може хтось поділитися та направити мене на потрібний ресурс, будь ласка? Я вже розглянув наступне і не надаю того, що шукаю, тобто повністю функціональний приклад:

http://restsharp.org/ (Не має повного додатку з прикладом)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (схоже, старий)

Під час створення прототипів я отримую помилку нижче для коду нижче:

RestResponse response = client.Execute(request);

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

@JohnSheehan виглядає так, як twillio використовує HttpClient ні restsharp
татіго

Відповіді:


21

Мені вдалося знайти допис у блозі на цю тему, який посилається на проект з відкритим кодом, який реалізує RestSharp. Сподіваємось, вам допоможуть.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Публікація в блозі є 2 партером, і проект знаходиться тут: https://github.com/ dkarzon / DropNet

Це може допомогти, якщо у вас є повний приклад того, що не працює. Важко отримати контекст про те, як був налаштований клієнт, якщо ви не надаєте код.


привіт @pmms, в основному я намагаюся слідувати коду звідси stum.de/2009/12/22/…, але я отримую помилку, яку я описав у своєму вихідному запитанні вище.
Nil Pun

На жаль, не вдається зв’язатись із корпоративною мережею. Я спробую шукати пізніше.
pms1969,

7
Добре, дивлячись на приклад, вони використовують "var", ви використовуєте RestResponse. Спробуйте або використати "var", або IRestResponse. Вони також використовують загальний Execute.
pms1969,

Нарешті гідний приклад, ура!

Як і зараз, це відповідь лише на посилання.
Олексій

133

Блог Pawel Sawicz .NET має дуже гарне пояснення та приклад коду, що пояснює, як зателефонувати до бібліотеки;

ОТРИМАТИ:

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

ПОСТ:

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

ВИДАЛИТИ:

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)

Сторінка RestSharp GitHub має досить вичерпний зразок на половині сторінки. Для початку встановіть пакет RestSharp NuGet у свій проект, а потім включіть необхідні посилання на простір імен у свій код, тоді вищезгаданий код повинен працювати (можливо, заперечуючи вашу потребу в повному прикладі програми).

NuGet RestSharp


1
Тут відсутній параметр і заголовки
Крістіна Лекс

Ваш перший приклад GET не працює:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G

26

Змінюється

RestResponse response = client.Execute(request);

до

IRestResponse response = client.Execute(request);

працював у мене.


3
абоvar response = client.Execute(request) as RestResponse;
JohnTube

1
просто дозволити кожному, хто приземлиться тут, через пошук у Google; перехід на IRestResponse також допомагає з набраними дзвінками. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (запит); працює, як очікувалося, але RestResponse <DummyData> typedResponse = client.Execute <DummyData> (запит); не.
mahonya

Залежить від того, що вам повернуть. наприклад, у моєму випадку я використовую, response.Data тому що я роблю це, var response = Client.Execute<List<Skill>>(request); в якому я повертаюсь. return response.Data; Отже, для мене я насправді вже використовую IRestResponse з var, тому що якби я був явним, це було б IRestResponse<List<Skill>>для відповіді - Інакше відповідь правильна! просто додаю коментар
Tom Stickel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.