Set Cookie for UIWebView requests

Timm picture Timm · Feb 22, 2012 · Viewed 7k times · Source

I want to embed an UIWebView into my MonoTouch application for an area that is not yet implemented natively.

In order to authenticate with the website I want to set a cookie containing a key for the current session.

I tried creating a NSDictionary with the properties for the Cookie and then create a new NSHttpCookie and add it to the NSHttpCookieStorage.SharedStorage.

Sadly the cookie seems to be empty and not used for the request.

An example of how to build be cookie with properties and a comment on whether or not this is the simplest way to do this would be greatly appreciated.

Answer

poupou picture poupou · Feb 23, 2012

Following Anuj's bug report I felt bad about how many lines of code were required to create the cookies. So the next MonoTouch versions will have new constructors for NSHttpCookie, similar to System.Net.Cookie that will allow you do to something like:

// this ctor requires all mandatory parameters 
// so you don't have to guess them while coding
var cookie = new NSHttpCookie ("iherd", "ulikecookies", "/", "yodawg.com");

You'll even be able to create a NSHttpCookie from a .NET System.Net.Cookie.

Note: Never hesitate to fill a bug report when an API proves to be way more complicated than it should be :-)