ตัวอย่างง่ายๆของ RestSharp [ปิด]


97

ฉันพยายามสร้างเว็บแอปพลิเคชันต้นแบบง่ายๆที่ใช้ 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
tatigo

คำตอบ:


23

ฉันจัดการเพื่อค้นหาบล็อกโพสต์ในหัวข้อซึ่งเชื่อมโยงไปยังโครงการโอเพนซอร์สที่ใช้ 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/…แต่ฉันได้รับข้อผิดพลาดที่ฉันอธิบายไว้ในคำถามเดิมของฉันด้านบน
นิลปุ่น

ขออภัยไม่สามารถเข้าถึงได้จากภายในเครือข่ายขององค์กร ฉันจะลองดูในภายหลัง
pms1969

7
ตกลงดูตัวอย่างพวกเขาใช้ "var" คุณกำลังใช้ RestResponse ลองใช้ "var" หรือ IRestResponse พวกเขายังใช้ Execute ทั่วไป
pms1969

ในที่สุดก็เป็นตัวอย่างที่ดีไชโย!

ตามที่เป็นอยู่นี้เป็นคำตอบแบบลิงก์เท่านั้น
Alex

140

บล็อก 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
นี่คือพารามิเตอร์และส่วนหัวที่ขาดหายไป
Kristina Lex

ตัวอย่าง GET แรกของคุณใช้ไม่ได้:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G

ขอบคุณนี่คือสูตรโกงที่ยอดเยี่ยมอย่างรวดเร็ว :)
Alexander

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> (request); ทำงานได้ตามที่คาดไว้ แต่ RestResponse <DummyData> typedResponse = client.Execute <DummyData> (request); ไม่.
mahonya

ขึ้นอยู่กับสิ่งที่คุณถูกส่งกลับ ตัวอย่างเช่นในกรณีของฉันฉันใช้response.Data เพราะฉันกำลังทำสิ่งนี้ var response = Client.Execute<List<Skill>>(request); ซึ่งฉันกลับมา return response.Data; ดังนั้นสำหรับฉันจริงๆแล้วฉันใช้ IRestResponse กับ var อยู่แล้วเพราะถ้าฉันชัดเจนมันจะเป็นการ IRestResponse<List<Skill>>ตอบสนอง - มิฉะนั้นคำตอบจะถูกต้อง! เพียงแค่เพิ่มความคิดเห็น
Tom Stickel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.