受欢迎的博客标签

Web API Client:RestSharp client -A Simple .NET REST Web API Client

Published

In C# we can consume RestAPI using the following ways,

HttpWebRequest or HttpWebResponse
WebClient
HttpClient
RestSharp Classes etc

The best and most straightforward way to consume RestAPI is by using the HttpClient class.

 

https://github.com/restsharp/RestSharp

The RestSharp package is now signed so there is no need to install RestSharp.Signed, which is obsolete from v160.0.0. FeaturesAssemblies for .NET 4.5.2 and .NET Standard 2.0

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("file", 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
await client.ExecuteAsync(request);

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

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

 

https://github.com/kendallb/RestSharp

RestSharp simple complete example