abe
abe

Reputation: 4146

Saving a cookie with RestSharp

I am trying to get a cookie to persist between RestClients and app sessions for WinPhone 7 Mango using RestSharp.

If I use a single RestClient instance the cookie persists. I want the cookie to last between RestClient instances and when a user returns to the app.

Upvotes: 2

Views: 8117

Answers (3)

Yusuf Mohammad
Yusuf Mohammad

Reputation: 69

Cookie value must be encoded.

if ( header["Set-Cookie"] != null )
{
string value = header["Set-Cookie"];

Encoding iso = Encoding.GetEncoding("iso-8859-9");//may be utf-8

value = HttpUtility.UrlEncode(value, iso);
Cookie moCookie = new Cookie( "Cookie", value);
moCookie.Domain = GatewayURI.Trim();
CookieContainer CommCookie = new CookieContainer();
CommCookie.Add( moCookie );
request.CookieContainer = CommCookie;
}

Upvotes: 0

Eldar
Eldar

Reputation: 116

RestSharp have recently added automatic cookie support!

RestSharp 102.4+ supports using a shared System.Net.CookieContainer for all requests from the same IRestClient. By doing so, any cookies set or unset in responses will be used in subsequent requests. In order to use a shared CookieContainer, simply set the property on your RestClient instance before using it:

var client = new RestClient ("http://server/");
client.CookieContainer = new System.Net.CookieContainer();

Documentation: https://github.com/restsharp/RestSharp/wiki/Cookies

Upvotes: 9

abe
abe

Reputation: 4146

You need to manually save the cookie info there is no native support in RestSharp for saving your cookie between sessions.

Upvotes: -1

Related Questions