RestSharp basit eksiksiz örnek [kapalı]


97

Rest API'yi çağırmak için RestSharp kullanan basit bir prototip web uygulaması oluşturmaya çalışıyorum.

Bunun için iyi bir örnek bulamadım. Biri beni paylaşabilir ve doğru kaynağa yönlendirebilir mi lütfen? Aşağıdakilere zaten baktım ve aradığımı sağlamıyor, yani tamamen işlevsel bir örnek:

http://restsharp.org/ (Örnekle birlikte tam uygulama yok)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (eski görünüyor)

Prototipleme yaparken aşağıdaki kod için aşağıdaki hatayı alıyorum:

RestResponse response = client.Execute(request);

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

@JohnSheehan twillio HttpClient veya restsharp kullanıyor gibi görünüyor
tatigo

Yanıtlar:


23

Konuyla ilgili, RestSharp'ı uygulayan açık kaynaklı bir projeye bağlanan bir blog yazısı bulmayı başardım. Umarım size yardımcı olur.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Blog yazısı 2 bölümlüdür ve proje burada: https://github.com/ dkarzon / DropNet

Neyin işe yaramadığına dair tam bir örneğiniz olsaydı yardımcı olabilirdi. Kodu sağlamazsanız, istemcinin nasıl kurulduğuna dair bağlam elde etmek zordur.


merhaba @pmms, temelde kodu buradan takip etmeye çalışıyorum stum.de/2009/12/22/… ama yukarıdaki orijinal sorumda anlattığım hatayı alıyorum.
Nil Pun

Üzgünüz, kurumsal ağın içinden ona ulaşamıyorum. Daha sonra bakmayı deneyeceğim.
pms1969

7
Tamam, örneğe bakın, "var" kullanıyorlar, RestResponse kullanıyorsunuz. "Var" veya IRestResponse kullanmayı deneyin. Ayrıca genel bir Yürütme kullanıyorlar.
pms1969

Sonunda iyi bir örnek, şerefe!

Şu an olduğu gibi, bu yalnızca bağlantıya dayalı bir cevaptır.
Alex

140

Pawel Sawicz .NET blogunda gerçekten iyi bir açıklama ve kitaplığın nasıl aranacağını açıklayan örnek bir kod var;

ALMAK:

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

İLETİ:

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

SİL:

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 sayfa sayfa aşağı oldukça ayrıntılı bir örnek yarıya sahiptir. Başlamak için RestSharp NuGet paketini projenize yükleyin, ardından kodunuza gerekli ad alanı referanslarını ekleyin, ardından yukarıdaki kodun çalışması gerekir (muhtemelen tam bir örnek uygulama ihtiyacınızı ortadan kaldırır).

NuGet RestSharp


1
Bu eksik parametre ve başlıklar
Kristina Lex

İlk GET örneğiniz işe yaramıyor:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G

teşekkürler, bu harika bir hızlı hile sayfası :)
Alexander

26

Değiştirme

RestResponse response = client.Execute(request);

-e

IRestResponse response = client.Execute(request);

benim için çalıştı.


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

1
sadece buraya gelen herkesin bir google araması yapmasına izin vermek için; IRestResponse'ye geçmek, yazılı aramalara da yardımcı olur. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (istek); beklendiği gibi çalışır ancak RestResponse <DummyData> typedResponse = client.Execute <DummyData> (istek); değil.
mahonya

Ne iade edeceğinize bağlı. örneğin benim durumumda kullanıyorum response.Data çünkü bunu yapıyorum var response = Client.Execute<List<Skill>>(request); ve geri return response.Data; dönüyorum Yani aslında benim için zaten var ile IRestResponse kullanıyorum çünkü açık olsaydım IRestResponse<List<Skill>>yanıt için olurdu - Aksi takdirde cevap doğrudur! sadece bir yorum ekleyerek
Tom Stickel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.