RestSharp contoh lengkap sederhana [ditutup]

95

Saya telah mencoba membuat aplikasi web prototipe sederhana yang menggunakan RestSharp untuk memanggil Rest API.

Saya belum dapat menemukan satu contoh yang bagus tentangnya. Adakah yang bisa berbagi dan mengarahkan saya ke sumber daya yang benar? Saya sudah melihat yang berikut, dan tidak memberikan apa yang saya cari, yaitu contoh yang berfungsi penuh:

http://restsharp.org/ (Tidak memiliki aplikasi lengkap dengan contoh)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (sepertinya sudah tua)

Saat membuat prototipe saya mendapatkan kesalahan di bawah ini untuk kode di bawah ini:

RestResponse response = client.Execute(request);

*Cannot implicitly convert type 'IRestResponse' to 'RestResponse'. An explicit conversion exists (are you missing a cast?)  *
Nil Pun
sumber
@JohnSheehan terlihat seperti twillio menggunakan HttpClient atau restsharp
tatigo

Jawaban:

21

Saya berhasil menemukan postingan blog tentang subjek tersebut, yang tertaut ke proyek open source yang mengimplementasikan RestSharp. Semoga dari beberapa membantu Anda.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Posting blog adalah 2 parter, dan proyeknya ada di sini: https://github.com/ dkarzon / DropNet

Mungkin membantu jika Anda memiliki contoh lengkap tentang apa yang tidak berhasil. Sulit untuk mendapatkan konteks tentang bagaimana klien disiapkan jika Anda tidak memberikan kodenya.

pms1969
sumber
hai @pmms, pada dasarnya saya mencoba mengikuti kode dari sini stum.de/2009/12/22/… tetapi saya mendapatkan kesalahan yang saya jelaskan pada pertanyaan asli saya di atas.
Nil Pun
Maaf, tidak dapat menjangkau dari dalam jaringan perusahaan. Saya akan mencoba melihat nanti.
pms1969
7
Oke, melihat contoh, mereka menggunakan "var", Anda menggunakan RestResponse. Coba gunakan "var" atau IRestResponse. Mereka juga menggunakan Execute generik.
pms1969
Akhirnya contoh yang layak, cheers!
Seperti sekarang, ini adalah jawaban hanya tautan.
Alex
133

Blog Pawel Sawicz .NET memiliki penjelasan dan contoh kode yang sangat bagus, menjelaskan bagaimana memanggil perpustakaan;

DAPATKAN:

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

POS:

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

MENGHAPUS:

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)

Halaman RestSharp GitHub memiliki sampel yang cukup lengkap di bagian tengah halaman. Untuk memulai, instal paket RestSharp NuGet di proyek Anda, kemudian sertakan referensi namespace yang diperlukan dalam kode Anda, lalu kode di atas akan berfungsi (mungkin meniadakan kebutuhan Anda akan aplikasi contoh lengkap).

NuGet RestSharp

wonea
sumber
1
Ini tidak memiliki parameter dan header
Kristina Lex
Contoh GET pertama Anda tidak berfungsi:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G
26

Berubah

RestResponse response = client.Execute(request);

untuk

IRestResponse response = client.Execute(request);

bekerja untuk saya.

fraktal
sumber
3
atauvar response = client.Execute(request) as RestResponse;
JohnTube
1
hanya untuk membiarkan siapa saja yang mendarat di sini melalui pencarian google; mengubah ke IRestResponse juga membantu dengan panggilan yang diketik. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (permintaan); bekerja seperti yang diharapkan tetapi RestResponse <DummyData> typedResponse = client.Execute <DummyData> (request); tidak.
mahonya
Tergantung pada apa Anda dikembalikan. misalnya dalam kasus saya, saya menggunakan response.Data karena saya melakukan ini var response = Client.Execute<List<Skill>>(request); Di mana saya kembali return response.Data; Jadi bagi saya sebenarnya saya sudah menggunakan IRestResponse dengan var karena jika saya eksplisit itu akan IRestResponse<List<Skill>>untuk respon - Jika tidak jawabannya benar! hanya menambahkan komentar
Tom Stickel