您的位置:首页 > 理论基础 > 计算机网络

一款 .NET 下的轻量级 REST 和 HTTP API 客户端 - RestSharp

2014-05-12 17:04 537 查看
项目地址:https://github.com/restsharp/RestSharp

Features

Supports .NET 3.5+, Silverlight 4, Windows Phone 7, Mono, MonoTouch, Mono for Android, Compact Framework 3.5

Easy installation using NuGet for most .NET flavors

Automatic XML and JSON deserialization

Supports custom serialization and deserialization via ISerializer and IDeserializer

Fuzzy element name matching ('product_id' in XML/JSON will match C# property named 'ProductId')

Automatic detection of type of content returned

GET, POST, PUT, HEAD, OPTIONS, DELETE supported

Other non-standard HTTP methods also supported

oAuth 1, oAuth 2, Basic, NTLM and Parameter-based Authenticators included

Supports custom authentication schemes via IAuthenticator

Multi-part form/file uploads

T4 Helper to generate C# classes from an XML document

示例代码:

var client = new RestClient("http://example.com");
// client.Authenticator = new HttpBasicAuthenticator(username, password);

var request = new RestRequest("resource/{id}", Method.POST);
request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method
request.AddUrlSegment("id", "123"); // replaces matching token in request.Resource

// add parameters for all properties on an object
request.AddObject(object);

// or just whitelisted properties
request.AddObject(object, "PersonId", "Name", ...);

// easily add HTTP Headers
request.AddHeader("header", "value");

// add files to upload (works with compatible verbs)
request.AddFile(path);

// execute the request
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string

// or automatically deserialize result
// return content type is sniffed but can be explicitly set via RestClient.AddHandler();
IRestResponse<Person> response2 = client.Execute<Person>(request);
var name = response2.Data.Name;

// or download and save file to disk
client.DownloadData(request).SaveAs(path);

// easy async support
client.ExecuteAsync(request, response => {
Console.WriteLine(response.Content);
});

// async with deserialization
var asyncHandle = client.ExecuteAsync<Person>(request, response => {
Console.WriteLine(response.Data.Name);
});

// abort the request on demand
asyncHandle.Abort();


可参考网址:

/article/4587292.html

谢谢浏览!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: