Ví dụ hoàn chỉnh đơn giản RestSharp [đã đóng]


95

Tôi đã cố gắng tạo một ứng dụng web nguyên mẫu đơn giản sử dụng RestSharp để gọi API Rest.

Tôi không thể tìm thấy một ví dụ điển hình nào về nó. Bất cứ ai có thể vui lòng chia sẻ và hướng dẫn tôi đến tài nguyên bên phải xin vui lòng? Tôi đã xem xét phần sau và không cung cấp những gì tôi đang tìm kiếm, tức là ví dụ đầy đủ chức năng:

http://restsharp.org/ (Không có ứng dụng đầy đủ với ví dụ)

http://www.stum.de/2009/12/22/using-restsharp-to-consume-restful-web-services/ (có vẻ đã cũ)

Trong khi tạo mẫu, tôi gặp lỗi bên dưới cho mã bên dưới:

RestResponse response = client.Execute(request);

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

@JohnSheehan có vẻ như twillio sử dụng HttpClient hay restsharp
tatigo 23/03/18

Câu trả lời:


21

Tôi đã quản lý để tìm một bài đăng trên blog về chủ đề này, liên kết đến một dự án nguồn mở triển khai RestSharp. Hy vọng rằng sẽ giúp ích được phần nào cho bạn.

http://dkdevelopment.net/2010/05/18/dropbox-api-and-restsharp-for-ac-developer/ Bài đăng trên blog là một phần 2 và dự án ở đây: https://github.com/ dkarzon / DropNet

Nó có thể hữu ích nếu bạn có một ví dụ đầy đủ về những gì không hoạt động. Thật khó để có được ngữ cảnh về cách thiết lập ứng dụng khách nếu bạn không cung cấp mã.


xin chào @pmms, về cơ bản tôi đang cố gắng làm theo mã từ đây stum.de/2009/12/22/… nhưng tôi gặp lỗi mà tôi đã mô tả trong câu hỏi ban đầu ở trên.
Nil Pun

Rất tiếc, không thể truy cập nó từ bên trong mạng công ty. Tôi sẽ thử xem xét sau.
pms1969

7
OK, nhìn vào ví dụ, họ sử dụng "var", bạn đang sử dụng RestResponse. Hãy thử sử dụng "var" hoặc IRestResponse. Họ cũng đang sử dụng một Execute chung.
pms1969,

Cuối cùng là một ví dụ tử tế, chúc mừng!

Như hiện tại, đây là câu trả lời chỉ có liên kết.
Alex

133

Blog Pawel Sawicz .NET có phần giải thích và mã ví dụ thực sự tốt, giải thích cách gọi thư viện;

ĐƯỢC:

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

BÀI ĐĂNG:

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

XÓA BỎ:

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)

Trang RestSharp GitHub có một mẫu khá đầy đủ ở nửa trang. Để bắt đầu, hãy cài đặt gói RestSharp NuGet trong dự án của bạn, sau đó bao gồm các tham chiếu không gian tên cần thiết trong mã của bạn, sau đó mã trên sẽ hoạt động (có thể phủ nhận nhu cầu của bạn về một ứng dụng mẫu đầy đủ).

NuGet RestSharp


1
Đây là mất tích tiêu đề tham số và
Kristina Lex

Ví dụ GET đầu tiên của bạn không hoạt động:The type or namespace name 'List<>' could not be found The type or namespace name 'Items' could not be found
Alex G

26

Thay đổi

RestResponse response = client.Execute(request);

đến

IRestResponse response = client.Execute(request);

đã làm cho tôi.


3
hoặcvar response = client.Execute(request) as RestResponse;
JohnTube

1
chỉ để cho bất kỳ ai đến đây thông qua tìm kiếm trên google; thay đổi thành IRestResponse cũng giúp ích cho các cuộc gọi đã nhập. IRestResponse <DummyData> typedResponse = client.Execute <DummyData> (request); hoạt động như mong đợi nhưng RestResponse <DummyData> typedResponse = client.Execute <DummyData> (request); không làm.
mahonya

Phụ thuộc vào những gì bạn được trả lại. ví dụ trong trường hợp của tôi, tôi đang sử dụng response.Data bởi vì tôi đang làm điều này var response = Client.Execute<List<Skill>>(request); Trong đó tôi trả về return response.Data; Vì vậy, đối với tôi, tôi thực sự đã sử dụng IRestResponse với var bởi vì nếu tôi rõ ràng thì nó sẽ là IRestResponse<List<Skill>>phản hồi - Nếu không thì câu trả lời là đúng! chỉ cần thêm một bình luận
Tom Stickel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.