RestSharp
JSON WEB TOKEN (JWT) Authenticator class.
https://tools.ietf.org/html/draft-ietf-oauth-json-web-token
Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user
Authenticate with the credentials of the currently logged in user
Authenticate by impersonation
Authenticate by impersonation, using an existing ICredentials instance
Base class for OAuth 2 Authenticators.
Since there are many ways to authenticate in OAuth2,
this is used as a base class to differentiate between
other authenticators.
Any other OAuth2 authenticators must derive from this
abstract class.
Access token to be used when authenticating.
Initializes a new instance of the class.
The access token.
Gets the access token.
The OAuth 2 authenticator using URI query parameter.
Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2
Initializes a new instance of the class.
The access token.
The OAuth 2 authenticator using the authorization request header field.
Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1
Stores the Authorization header value as "[tokenType] accessToken". used for performance.
Initializes a new instance of the class.
The access token.
Initializes a new instance of the class.
The access token.
The token type.
All text parameters are UTF-8 encoded (per section 5.1).
Generates a random 16-byte lowercase alphanumeric string.
Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT"
Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT"
A specified point in time.
The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986.
URL encodes a string based on section 5.1 of the OAuth spec.
Namely, percent encoding with [RFC3986], avoiding unreserved characters,
upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs.
The value to escape.
The escaped value.
The method is supposed to take on
RFC 3986 behavior if certain elements are present in a .config file. Even if this
actually worked (which in my experiments it doesn't), we can't rely on every
host actually having this configuration element present.
URL encodes a string based on section 5.1 of the OAuth spec.
Namely, percent encoding with [RFC3986], avoiding unreserved characters,
upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs.
Sorts a collection of key-value pairs by name, and then value if equal,
concatenating them into a single string. This string should be encoded
prior to, or after normalization is run.
Sorts a by name, and then value if equal.
A collection of parameters to sort
A sorted parameter collection
Creates a request URL suitable for making OAuth requests.
Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively.
Resulting URLs must be lower case.
The original request URL
Creates a request elements concatentation value to send with a request.
This is also known as the signature base.
The request's HTTP method type
The request URL
The request's parameters
A signature base string
Creates a signature value given a signature base and the consumer secret.
This method is used when the token secret is currently unknown.
The hashing method
The signature base
The consumer key
Creates a signature value given a signature base and the consumer secret.
This method is used when the token secret is currently unknown.
The hashing method
The treatment to use on a signature value
The signature base
The consumer key
Creates a signature value given a signature base and the consumer secret and a known token secret.
The hashing method
The signature base
The consumer secret
The token secret
Creates a signature value given a signature base and the consumer secret and a known token secret.
The hashing method
The treatment to use on a signature value
The signature base
The consumer secret
The token secret
A class to encapsulate OAuth authentication flow.
Generates a instance to pass to an
for the purpose of requesting an
unauthorized request token.
The HTTP method for the intended request
Generates a instance to pass to an
for the purpose of requesting an
unauthorized request token.
The HTTP method for the intended request
Any existing, non-OAuth query parameters desired in the request
Generates a instance to pass to an
for the purpose of exchanging a request token
for an access token authorized by the user at the Service Provider site.
The HTTP method for the intended request
Generates a instance to pass to an
for the purpose of exchanging a request token
for an access token authorized by the user at the Service Provider site.
The HTTP method for the intended request
Any existing, non-OAuth query parameters desired in the request
Generates a instance to pass to an
for the purpose of exchanging user credentials
for an access token authorized by the user at the Service Provider site.
The HTTP method for the intended request
Any existing, non-OAuth query parameters desired in the request
Allows control how class and property names and values are deserialized by XmlAttributeDeserializer
The name to use for the serialized element
Sets if the property to Deserialize is an Attribute or Element (Default: false)
Wrapper for System.Xml.Serialization.XmlSerializer.
Types of parameters that can be added to requests
Data formats
HTTP method to use when making requests
Format strings for commonly-used date formats
.NET format string for ISO 8601 date format
.NET format string for roundtrip date format
Status for responses (surprised?)
Extension method overload!
Save a byte array to a file
Bytes to save
Full path to save file to
Read a stream into a byte array
Stream to read
byte[]
Copies bytes from one stream to another
The input stream.
The output stream.
Converts a byte array to a string, using its byte order mark to convert it to the right encoding.
http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx
An array of bytes to convert
The byte as a string.
Decodes an HTML-encoded string and returns the decoded string.
The HTML string to decode.
The decoded text.
Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream.
The HTML string to decode
The TextWriter output stream containing the decoded string.
HTML-encodes a string and sends the resulting output to a TextWriter output stream.
The string to encode.
The TextWriter output stream containing the encoded string.
Reflection extensions
Retrieve an attribute from a member (property)
Type of attribute to retrieve
Member to retrieve attribute from
Retrieve an attribute from a type
Type of attribute to retrieve
Type to retrieve attribute from
Checks a type to see if it derives from a raw generic (e.g. List[[]])
Find a value from a System.Enum by trying several possible variants
of the string value of the enum.
Type of enum
Value for which to search
The culture used to calculate the name variants
Convert a to a instance.
The response status.
responseStatus
Uses Uri.EscapeDataString() based on recommendations on MSDN
http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx
Check that a string is not null or empty
String to check
bool
Remove underscores from a string
String to process
string
Parses most common JSON date formats
JSON value to parse
DateTime
Remove leading and trailing " from a string
String to parse
String
Checks a string to see if it matches a regex
String to check
Pattern to match
bool
Converts a string to pascal case
String to convert
string
Converts a string to pascal case with the option to remove underscores
String to convert
Option to remove underscores
Converts a string to camel case
String to convert
String
Convert the first letter of a string to lower case
String to convert
string
Checks to see if a string is all uppper case
String to check
bool
Add underscores to a pascal-cased string
String to convert
string
Add dashes to a pascal-cased string
String to convert
string
Add an undescore prefix to a pascasl-cased string
Add spaces to a pascal-cased string
String to convert
string
Return possible variants of a name for name matching.
String to convert
The culture to use for conversion
IEnumerable<string>
XML Extension Methods
Returns the name of an element with the namespace if specified
Element name
XML Namespace
Container for files to be uploaded with requests
Creates a file parameter from an array of bytes.
The parameter name to use in the request.
The data to use as the file's contents.
The filename to use in the request.
The content type to use in the request.
The
Creates a file parameter from an array of bytes.
The parameter name to use in the request.
The data to use as the file's contents.
The filename to use in the request.
The using the default content type.
The length of data to be sent
Provides raw data for file
Name of the file to use when uploading
MIME content type of file
Name of the parameter
HttpWebRequest wrapper (async methods)
HttpWebRequest wrapper
HttpWebRequest wrapper (sync methods)
Always send a multipart/form-data request - even when no Files are present.
An alternative to RequestBody, for when the caller already has the byte array.
Execute an async POST-style request with the specified HTTP Method.
The HTTP method to execute.
Execute an async GET-style request with the specified HTTP Method.
The HTTP method to execute.
Creates an IHttp
Default constructor
Execute a POST request
Execute a PUT request
Execute a GET request
Execute a HEAD request
Execute an OPTIONS request
Execute a DELETE request
Execute a PATCH request
Execute a MERGE request
Execute a GET-style request with the specified HTTP Method.
The HTTP method to execute.
Execute a POST-style request with the specified HTTP Method.
The HTTP method to execute.
True if this HTTP request has any HTTP parameters
True if this HTTP request has any HTTP cookies
True if a request body has been specified
True if files have been set to be uploaded
Always send a multipart/form-data request - even when no Files are present.
UserAgent to be sent with request
Timeout in milliseconds to be used for the request
The number of milliseconds before the writing or reading times out.
System.Net.ICredentials to be sent with request
The System.Net.CookieContainer to be used for the request
The method to use to write the response instead of reading into RawBytes
Collection of files to be sent with request
Whether or not HTTP 3xx response redirects should be automatically followed
X509CertificateCollection to be sent with request
Maximum number of automatic redirects to follow if FollowRedirects is true
Determine whether or not the "default credentials" (e.g. the user account under which the current process is running)
will be sent along to the server.
HTTP headers to be sent with request
HTTP parameters (QueryString or Form values) to be sent with request
HTTP cookies to be sent with request
Request body to be sent with request
Content type of the request body.
An alternative to RequestBody, for when the caller already has the byte array.
URL to call for this request
Flag to send authorisation header with the HttpWebRequest
Proxy info to be sent with request
Caching policy for requests created with this wrapper.
Representation of an HTTP cookie
Comment of the cookie
Comment of the cookie
Indicates whether the cookie should be discarded at the end of the session
Domain of the cookie
Indicates whether the cookie is expired
Date and time that the cookie expires
Indicates that this cookie should only be accessed by the server
Name of the cookie
Path of the cookie
Port of the cookie
Indicates that the cookie should only be sent over secure channels
Date and time the cookie was created
Value of the cookie
Version of the cookie
Container for HTTP file
The length of data to be sent
Provides raw data for file
Name of the file to use when uploading
MIME content type of file
Name of the parameter
Representation of an HTTP header
Name of the header
Value of the header
Representation of an HTTP parameter (QueryString or Form value)
Name of the parameter
Value of the parameter
Content-Type of the parameter
HTTP response data
HTTP response data
MIME content type of response
Length in bytes of the response content
Encoding of the response content
String representation of response content
HTTP response status code
Description of HTTP status returned
Response content
The URL that actually responded to the content (different from request if redirected)
HttpWebResponse.Server
Headers returned by server with the response
Cookies returned by server with the response
Status of the request. Will return Error for transport errors.
HTTP errors will still return ResponseStatus.Completed, check StatusCode instead
Transport or other non-HTTP error generated while attempting request
Exception thrown when error is encountered.
Default constructor
MIME content type of response
Length in bytes of the response content
Encoding of the response content
Lazy-loaded string representation of response content
HTTP response status code
Description of HTTP status returned
Response content
The URL that actually responded to the content (different from request if redirected)
HttpWebResponse.Server
Headers returned by server with the response
Cookies returned by server with the response
Status of the request. Will return Error for transport errors.
HTTP errors will still return ResponseStatus.Completed, check StatusCode instead
Transport or other non-HTTP error generated while attempting request
Exception thrown when error is encountered.
Executes a GET-style request and callback asynchronously, authenticating if needed
Request to be executed
Callback function to be executed upon completion providing access to the async handle.
The HTTP method to execute
Executes a POST-style request and callback asynchronously, authenticating if needed
Request to be executed
Callback function to be executed upon completion providing access to the async handle.
The HTTP method to execute
Executes a GET-style request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Callback function to be executed upon completion
The HTTP method to execute
Executes a GET-style request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Callback function to be executed upon completion
The HTTP method to execute
Executes the request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes the request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes a GET-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes a GET-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes a POST-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes a POST-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes the request and callback asynchronously, authenticating if needed
Request to be executed
The cancellation token
Executes the request asynchronously, authenticating if needed
Request to be executed
Executes a GET-style asynchronously, authenticating if needed
Request to be executed
Executes a GET-style asynchronously, authenticating if needed
Request to be executed
The cancellation token
Executes a POST-style asynchronously, authenticating if needed
Request to be executed
Executes a POST-style asynchronously, authenticating if needed
Request to be executed
The cancellation token
X509CertificateCollection to be sent with request
Adds a file to the Files collection to be included with a POST or PUT request
(other methods do not support file uploads).
The parameter name to use in the request
Full path to file to upload
The MIME type of the file to upload
This request
Adds the bytes to the Files collection with the specified file name and content type
The parameter name to use in the request
The file data
The file name to use for the uploaded file
The MIME type of the file to upload
This request
Adds the bytes to the Files collection with the specified file name and content type
The parameter name to use in the request
A function that writes directly to the stream. Should NOT close the stream.
The file name to use for the uploaded file
The MIME type of the file to upload
This request
Add bytes to the Files collection as if it was a file of specific type
A form parameter name
The file data
The file name to use for the uploaded file
Specific content type. Es: application/x-gzip
Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer
The default format is XML. Change RequestFormat if you wish to use a different serialization format.
The object to serialize
The XML namespace to use when serializing
This request
Serializes obj to data format specified by RequestFormat and adds it to the request body.
The default format is XML. Change RequestFormat if you wish to use a different serialization format.
The object to serialize
This request
Serializes obj to JSON format and adds it to the request body.
The object to serialize
This request
Serializes obj to XML format and adds it to the request body.
The object to serialize
This request
Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer
Serializes obj to XML format and passes xmlNamespace then adds it to the request body.
The object to serialize
The XML namespace to use when serializing
This request
Calls AddParameter() for all public, readable properties specified in the includedProperties list
request.AddObject(product, "ProductId", "Price", ...);
The object with properties to add as parameters
The names of the properties to include
This request
Calls AddParameter() for all public, readable properties of obj
The object with properties to add as parameters
This request
Add the parameter to the request
Parameter to add
Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
Name of the parameter
Value of the parameter
This request
Adds a parameter to the request. There are five types of parameters:
- GetOrPost: Either a QueryString value or encoded form value based on method
- HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
- UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
- Cookie: Adds the name/value pair to the HTTP request's Cookies collection
- RequestBody: Used by AddBody() (not recommended to use directly)
Name of the parameter
Value of the parameter
The type of parameter to add
This request
Adds a parameter to the request. There are five types of parameters:
- GetOrPost: Either a QueryString value or encoded form value based on method
- HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
- UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
- Cookie: Adds the name/value pair to the HTTP request's Cookies collection
- RequestBody: Used by AddBody() (not recommended to use directly)
Name of the parameter
Value of the parameter
Content-Type of the parameter
The type of parameter to add
This request
Shortcut to AddParameter(name, value, HttpHeader) overload
Name of the header to add
Value of the header to add
Shortcut to AddParameter(name, value, Cookie) overload
Name of the cookie to add
Value of the cookie to add
Shortcut to AddParameter(name, value, UrlSegment) overload
Name of the segment to add
Value of the segment to add
Shortcut to AddParameter(name, value, QueryString) overload
Name of the parameter to add
Value of the parameter to add
Always send a multipart/form-data request - even when no Files are present.
Serializer to use when writing JSON request bodies. Used if RequestFormat is Json.
By default the included JsonSerializer is used (currently using JSON.NET default serialization).
Serializer to use when writing XML request bodies. Used if RequestFormat is Xml.
By default the included XmlSerializer is used.
Set this to write response to Stream rather than reading into memory.
Container of all HTTP parameters to be passed with the request.
See AddParameter() for explanation of the types of parameters that can be passed
Container of all the files to be uploaded with the request.
Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS
Default is GET
The Resource URL to make the request against.
Tokens are substituted with UrlSegment parameters and match by name.
Should not include the scheme or domain. Do not include leading slash.
Combined with RestClient.BaseUrl to assemble final URL:
{BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com)
// example for url token replacement
request.Resource = "Products/{ProductId}";
request.AddParameter("ProductId", 123, ParameterType.UrlSegment);
Serializer to use when writing XML request bodies. Used if RequestFormat is Xml.
By default XmlSerializer is used.
Used by the default deserializers to determine where to start deserializing from.
Can be used to skip container or root elements that do not have corresponding deserialzation targets.
Used by the default deserializers to explicitly set which date format string to use when parsing dates.
Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names.
In general you would not need to set this directly. Used by the NtlmAuthenticator.
Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient.
The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient.
How many attempts were made to send this Request?
This Number is incremented each time the RestClient sends the request.
Useful when using Asynchronous Execution with Callbacks
Determine whether or not the "default credentials" (e.g. the user account under which the current process is running)
will be sent along to the server. The default is false.
Container for data sent back from API
The RestRequest that was made to get this RestResponse
Mainly for debugging if ResponseStatus is not OK
MIME content type of response
Length in bytes of the response content
Encoding of the response content
String representation of response content
HTTP response status code
Description of HTTP status returned
Response content
The URL that actually responded to the content (different from request if redirected)
HttpWebResponse.Server
Cookies returned by server with the response
Headers returned by server with the response
Status of the request. Will return Error for transport errors.
HTTP errors will still return ResponseStatus.Completed, check StatusCode instead
Transport or other non-HTTP error generated while attempting request
Exceptions thrown during the request, if any.
Will contain only network transport or framework exceptions thrown during the request.
HTTP protocol errors are handled by RestSharp and will not appear here.
Container for data sent back from API including deserialized data
Type of data to deserialize to
Deserialized entity data
Parameter container for REST requests
Return a human-readable representation of this parameter
String
Name of the parameter
Value of the parameter
Type of the parameter
MIME content type of the parameter
Client to translate RestRequests into Http requests and process response result
Executes the request and callback asynchronously, authenticating if needed
Request to be executed
Callback function to be executed upon completion providing access to the async handle.
Executes a GET-style request and callback asynchronously, authenticating if needed
Request to be executed
Callback function to be executed upon completion providing access to the async handle.
The HTTP method to execute
Executes a POST-style request and callback asynchronously, authenticating if needed
Request to be executed
Callback function to be executed upon completion providing access to the async handle.
The HTTP method to execute
Executes the request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Callback function to be executed upon completion
Executes a GET-style request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Callback function to be executed upon completion
The HTTP method to execute
Executes a POST-style request and callback asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Callback function to be executed upon completion
The HTTP method to execute
Executes a GET-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes a GET-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes a POST-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes a POST-style request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes the request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
Executes the request asynchronously, authenticating if needed
Target deserialization type
Request to be executed
The cancellation token
Executes the request asynchronously, authenticating if needed
Request to be executed
Executes a GET-style asynchronously, authenticating if needed
Request to be executed
Executes a GET-style asynchronously, authenticating if needed
Request to be executed
The cancellation token
Executes a POST-style asynchronously, authenticating if needed
Request to be executed
Executes a POST-style asynchronously, authenticating if needed
Request to be executed
The cancellation token
Executes the request asynchronously, authenticating if needed
Request to be executed
The cancellation token
Default constructor that registers default content handlers
Sets the BaseUrl property for requests made by this client instance
Sets the BaseUrl property for requests made by this client instance
Registers a content handler to process response content
MIME content type of the response content
Deserializer to use to process content
Remove a content handler for the specified MIME content type
MIME content type to remove
Remove all content handlers
Retrieve the handler for the specified MIME content type
MIME content type to retrieve
IDeserializer instance
Assembles URL to call based on parameters, method and resource
RestRequest to execute
Assembled System.Uri
Executes the specified request and downloads the response data
Request to execute
Response data
Executes the request and returns a response, authenticating if needed
Request to be executed
RestResponse
Executes the specified request and deserializes the response content using the appropriate content handler
Target deserialization type
Request to execute
RestResponse[[T]] with deserialized data in Data property
Maximum number of redirects to follow if FollowRedirects is true
X509CertificateCollection to be sent with request
Proxy to use for requests made by this client instance.
Passed on to underlying WebRequest if set.
The cache policy to use for requests initiated by this client instance.
Default is true. Determine whether or not requests that result in
HTTP status codes of 3xx should follow returned redirect
The CookieContainer used for requests made by this client instance
UserAgent to use for requests made by this client instance
Timeout in milliseconds to use for requests made by this client instance
The number of milliseconds before the writing or reading times out.
Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked
Authenticator to use for requests made by this client instance
Combined with Request.Resource to construct URL for request
Should include scheme and domain without trailing slash.
client.BaseUrl = new Uri("http://example.com");
Parameters included with every request made with this instance of RestClient
If specified in both client and request, the request wins
Executes the request and callback asynchronously, authenticating if needed
The IRestClient this method extends
Request to be executed
Callback function to be executed upon completion
Executes the request and callback asynchronously, authenticating if needed
The IRestClient this method extends
Target deserialization type
Request to be executed
Callback function to be executed upon completion providing access to the async handle
Add a parameter to use on every request made with this client instance
The IRestClient instance
Parameter to add
Removes a parameter from the default parameters that are used on every request made with this client instance
The IRestClient instance
The name of the parameter that needs to be removed
Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
Used on every request made by this client instance
The IRestClient instance
Name of the parameter
Value of the parameter
This request
Adds a parameter to the request. There are four types of parameters:
- GetOrPost: Either a QueryString value or encoded form value based on method
- HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
- UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
- RequestBody: Used by AddBody() (not recommended to use directly)
The IRestClient instance
Name of the parameter
Value of the parameter
The type of parameter to add
This request
Shortcut to AddDefaultParameter(name, value, HttpHeader) overload
The IRestClient instance
Name of the header to add
Value of the header to add
Shortcut to AddDefaultParameter(name, value, UrlSegment) overload
The IRestClient instance
Name of the segment to add
Value of the segment to add
Container for data used to make requests
Default constructor
Sets Method property to value of method
Method to use for this request
Sets Resource property
Resource to use for this request
Sets Resource and Method properties
Resource to use for this request
Method to use for this request
Sets Resource property
Resource to use for this request
Sets Resource and Method properties
Resource to use for this request
Method to use for this request
Adds a file to the Files collection to be included with a POST or PUT request
(other methods do not support file uploads).
The parameter name to use in the request
Full path to file to upload
The MIME type of the file to upload
This request
Adds the bytes to the Files collection with the specified file name
The parameter name to use in the request
The file data
The file name to use for the uploaded file
The MIME type of the file to upload
This request
Adds the bytes to the Files collection with the specified file name and content type
The parameter name to use in the request
A function that writes directly to the stream. Should NOT close the stream.
The file name to use for the uploaded file
The MIME type of the file to upload
This request
Add bytes to the Files collection as if it was a file of specific type
A form parameter name
The file data
The file name to use for the uploaded file
Specific content type. Es: application/x-gzip
Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer
The default format is XML. Change RequestFormat if you wish to use a different serialization format.
The object to serialize
The XML namespace to use when serializing
This request
Serializes obj to data format specified by RequestFormat and adds it to the request body.
The default format is XML. Change RequestFormat if you wish to use a different serialization format.
The object to serialize
This request
Serializes obj to JSON format and adds it to the request body.
The object to serialize
This request
Serializes obj to XML format and adds it to the request body.
The object to serialize
This request
Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer
Serializes obj to XML format and passes xmlNamespace then adds it to the request body.
The object to serialize
The XML namespace to use when serializing
This request
Calls AddParameter() for all public, readable properties specified in the includedProperties list
request.AddObject(product, "ProductId", "Price", ...);
The object with properties to add as parameters
The names of the properties to include
This request
Calls AddParameter() for all public, readable properties of obj
The object with properties to add as parameters
This request
Add the parameter to the request
Parameter to add
Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
Name of the parameter
Value of the parameter
This request
Adds a parameter to the request. There are four types of parameters:
- GetOrPost: Either a QueryString value or encoded form value based on method
- HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
- UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
- RequestBody: Used by AddBody() (not recommended to use directly)
Name of the parameter
Value of the parameter
The type of parameter to add
This request
Adds a parameter to the request. There are four types of parameters:
- GetOrPost: Either a QueryString value or encoded form value based on method
- HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
- UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
- RequestBody: Used by AddBody() (not recommended to use directly)
Name of the parameter
Value of the parameter
Content-Type of the parameter
The type of parameter to add
This request
Shortcut to AddParameter(name, value, HttpHeader) overload
Name of the header to add
Value of the header to add
Shortcut to AddParameter(name, value, Cookie) overload
Name of the cookie to add
Value of the cookie to add
Shortcut to AddParameter(name, value, UrlSegment) overload
Name of the segment to add
Value of the segment to add
Shortcut to AddParameter(name, value, QueryString) overload
Name of the parameter to add
Value of the parameter to add
Internal Method so that RestClient can increase the number of attempts
Always send a multipart/form-data request - even when no Files are present.
Serializer to use when writing JSON request bodies. Used if RequestFormat is Json.
By default the included JsonSerializer is used (currently using JSON.NET default serialization).
Serializer to use when writing XML request bodies. Used if RequestFormat is Xml.
By default the included XmlSerializer is used.
Set this to write response to Stream rather than reading into memory.
Determine whether or not the "default credentials" (e.g. the user account under which the current process is running)
will be sent along to the server. The default is false.
Container of all HTTP parameters to be passed with the request.
See AddParameter() for explanation of the types of parameters that can be passed
Container of all the files to be uploaded with the request.
Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS
Default is GET
The Resource URL to make the request against.
Tokens are substituted with UrlSegment parameters and match by name.
Should not include the scheme or domain. Do not include leading slash.
Combined with RestClient.BaseUrl to assemble final URL:
{BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com)
// example for url token replacement
request.Resource = "Products/{ProductId}";
request.AddParameter("ProductId", 123, ParameterType.UrlSegment);
Serializer to use when writing XML request bodies. Used if RequestFormat is Xml.
By default XmlSerializer is used.
Used by the default deserializers to determine where to start deserializing from.
Can be used to skip container or root elements that do not have corresponding deserialzation targets.
A function to run prior to deserializing starting (e.g. change settings if error encountered)
Used by the default deserializers to explicitly set which date format string to use when parsing dates.
Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names.
In general you would not need to set this directly. Used by the NtlmAuthenticator.
Gets or sets a user-defined state object that contains information about a request and which can be later
retrieved when the request completes.
Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient.
The number of milliseconds before the writing or reading times out. This timeout value overrides a timeout set on the RestClient.
How many attempts were made to send this Request?
This Number is incremented each time the RestClient sends the request.
Useful when using Asynchronous Execution with Callbacks
Base class for common properties shared by RestResponse and RestResponse[[T]]
Default constructor
Assists with debugging responses by displaying in the debugger output
The RestRequest that was made to get this RestResponse
Mainly for debugging if ResponseStatus is not OK
MIME content type of response
Length in bytes of the response content
Encoding of the response content
String representation of response content
HTTP response status code
Description of HTTP status returned
Response content
The URL that actually responded to the content (different from request if redirected)
HttpWebResponse.Server
Cookies returned by server with the response
Headers returned by server with the response
Status of the request. Will return Error for transport errors.
HTTP errors will still return ResponseStatus.Completed, check StatusCode instead
Transport or other non-HTTP error generated while attempting request
The exception thrown during the request, if any
Container for data sent back from API including deserialized data
Type of data to deserialize to
Deserialized entity data
Container for data sent back from API
Comment of the cookie
Comment of the cookie
Indicates whether the cookie should be discarded at the end of the session
Domain of the cookie
Indicates whether the cookie is expired
Date and time that the cookie expires
Indicates that this cookie should only be accessed by the server
Name of the cookie
Path of the cookie
Port of the cookie
Indicates that the cookie should only be sent over secure channels
Date and time the cookie was created
Value of the cookie
Version of the cookie
Wrapper for System.Xml.Serialization.XmlSerializer.
Default constructor, does not specify namespace
Specify the namespaced to be used when serializing
XML namespace
Serialize the object as XML
Object to serialize
XML as string
Name of the root element to use when serializing
XML namespace to use when serializing
Format string to use when serializing dates
Content type for serialized content
Encoding for serialized content
Need to subclass StringWriter in order to override Encoding
Default JSON serializer for request bodies
Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes
Default serializer
Serialize the object as JSON
Object to serialize
JSON as String
Unused for JSON Serialization
Unused for JSON Serialization
Unused for JSON Serialization
Content type for serialized content
Allows control how class and property names and values are serialized by XmlSerializer
Currently not supported with the JsonSerializer
When specified at the property level the class-level specification is overridden
Called by the attribute when NameStyle is speficied
The string to transform
String
The name to use for the serialized element
Sets the value to be serialized as an Attribute instead of an Element
The culture to use when serializing
Transforms the casing of the name based on the selected value.
The order to serialize the element. Default is int.MaxValue.
Options for transforming casing of element names
Default XML Serializer
Default constructor, does not specify namespace
Specify the namespaced to be used when serializing
XML namespace
Serialize the object as XML
Object to serialize
XML as string
Determines if a given object is numeric in any way
(can be integer, double, null, etc).
Name of the root element to use when serializing
XML namespace to use when serializing
Format string to use when serializing dates
Content type for serialized content
Helper methods for validating required values
Require a parameter to not be null
Name of the parameter
Value of the parameter
Represents the json array.
Initializes a new instance of the class.
Initializes a new instance of the class.
The capacity of the json array.
The json representation of the array.
The json representation of the array.
Represents the json object.
The internal member dictionary.
Initializes a new instance of .
Initializes a new instance of .
The implementation to use when comparing keys, or null to use the default for the type of the key.
Adds the specified key.
The key.
The value.
Determines whether the specified key contains key.
The key.
true if the specified key contains key; otherwise, false.
Removes the specified key.
The key.
Tries the get value.
The key.
The value.
Adds the specified item.
The item.
Clears this instance.
Determines whether [contains] [the specified item].
The item.
true if [contains] [the specified item]; otherwise, false.
Copies to.
The array.
Index of the array.
Removes the specified item.
The item.
Gets the enumerator.
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
Returns a json that represents the current .
A json that represents the current .
Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another.
Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion.
The result of the type conversion operation.
Alwasy returns true.
Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic.
Provides information about the deletion.
Alwasy returns true.
Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations.
Provides information about the operation.
The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3.
The result of the index operation.
Alwasy returns true.
Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property.
Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive.
The result of the get operation. For example, if the method is called for a property, you can assign the property value to .
Alwasy returns true.
Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index.
Provides information about the operation.
The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3.
The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10.
true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.
Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property.
Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive.
The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test".
true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.)
Returns the enumeration of all dynamic member names.
A sequence that contains dynamic member names.
Gets the at the specified index.
Gets the keys.
The keys.
Gets the values.
The values.
Gets or sets the with the specified key.
Gets the count.
The count.
Gets a value indicating whether this instance is read only.
true if this instance is read only; otherwise, false.
This class encodes and decodes JSON strings.
Spec. details, see http://www.json.org/
JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>).
All numbers are parsed to doubles.
Parses the string json into a value
A JSON string.
An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false
Try parsing the json string into a value.
A JSON string.
The object.
Returns true if successfull otherwise false.
Converts a IDictionary<string,object> / IList<object> object into a JSON string
A IDictionary<string,object> / IList<object>
Serializer strategy to use
A JSON encoded string, or null if object 'json' is not serializable
Determines if a given object is numeric in any way
(can be integer, double, null, etc).
Helper methods for validating values
Validate an integer value is between the specified values (exclusive of min/max)
Value to validate
Exclusive minimum value
Exclusive maximum value
Validate a string length
String to be validated
Maximum length of the string