Skip to content
Simple REST and HTTP API Client for .NET http://restsharp.org
C# Batchfile
Find file
Latest commit 0ef81fd Michael Hallett merged in pr #737
Failed to load latest commit information.
.nuget prepped a new version and fixed the build bat for monotouch and remov…
RestSharp.Android Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Build Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.IntegrationTests exclueded failing test from appveyor as it's passing locally
RestSharp.MonoTouch Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net4.Client Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net4 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net45 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net451 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net452 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Net46 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Silverlight Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.Tests merged in pr #737
RestSharp.WindowsPhone.8.0 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.WindowsPhone.8.1 Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.iOS Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp merged in pr #737
Tools added this prefix to the compression library (missed before) and clea…
.gitattributes Add gitattributes and fix line-endings
.gitignore Add integration test for OAuth1 authentication against Twitter API
CONTRIBUTING.markdown Converted tabs to spaces and corrected an error;
LICENSE.txt Added license
README.markdown Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
RestSharp.sln fixed breaking unit test from computed nuspec file name change for si…
RestSharp.snk Added capability for strong naming on the core library. This was done…
appveyor.yml updated appveyor.yml
build.bat prepped a new version and fixed the build bat for monotouch and remov…
readme.txt Added nuget targets for windows phone 8 and 8.1, monotouch10, monoand…
releasenotes.markdown updated release notes
restsharp.nuspec adding NuSpecUpdateTask to RestSharp.csproj

README.markdown

RestSharp - Simple .NET REST Client Build status

Official Site/Blog - @RestSharp

License: Apache License 2.0

Features

  • Supports .NET 3.5+, Silverlight 5, Windows Phone 8, Mono, MonoTouch, Mono for Android
  • Easy installation using NuGet for most .NET flavors
  • Supports strong naming 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("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
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();
Something went wrong with that request. Please try again.