RestSharp简单完整的示例[关闭]


95

我一直在尝试创建一个使用RestSharp调用Rest API的简单原型Web应用程序。

我还没有找到一个很好的例子。任何人都可以分享并指导我访问正确的资源吗?我已经看过以下内容,但没有提供我想要的功能齐全的示例:

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

Answers:


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/…的代码,但是我收到了我在上面的原始问题中描述的错误。
尼尔·潘

抱歉,无法从公司网络内部访问它。稍后再尝试。
pms1969

7
OK,在示例中,他们使用“ var”,您在使用RestResponse。尝试使用“ var”或IRestResponse。他们还使用通用的Execute。
pms1969

最后是一个不错的例子,欢呼!

到目前为止,这是仅链接的答案。
亚历克斯(Alex)

134

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


这缺少参数和标头
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

26

改变中

RestResponse response = client.Execute(request);

IRestResponse response = client.Execute(request);

为我工作。


3
var response = client.Execute(request) as RestResponse;
JohnTube 2014年

1
只是为了让任何人登陆谷歌搜索;更改为IRestResponse也有助于进行类型化的调用。IRestResponse <DummyData> typedResponse = client.Execute <DummyData>(请求); 工作正常,但是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 '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.