public void UploadStream(string url, long content_length, Action completed)
        {
            if (url == null)
            {
                throw new ArgumentNullException("url");
            }

            AddHeader("Expect", "100-continue");
            AddHeader("Content-Type", "application/octet-stream");
            AddHeader("Content-Length", content_length.ToString());

            InvokeOnMainThread(delegate {
                try {
                    request = CreateNativePostRequest(url, content_length);
                } catch (Exception e) {
                    Console.WriteLine("Exception uploading stream");
                    Console.WriteLine(e);
                    completed();
                    return;
                }

                url_connection = NSUrlConnection.FromRequest(request, new NativeUrlDelegate((body) => {
                    completed();
                    request.Dispose();
                }, (reason) => {
                    Console.WriteLine("upload failed: " + reason);
                    completed();
                }));
            });
        }
		public void UploadStream (string url, long content_length, Action completed)
		{
			if (url == null)
				throw new ArgumentNullException ("url");
			
			AddHeader ("Expect", "100-continue");
			AddHeader ("Content-Type", "application/octet-stream");
			AddHeader ("Content-Length", content_length.ToString ());
			
			InvokeOnMainThread (delegate {
				try {
					request = CreateNativePostRequest (url, content_length);
				} catch (Exception e) {
					Console.WriteLine ("Exception uploading stream");
					Console.WriteLine (e);
					completed ();
					return;
				}
				
				url_connection = NSUrlConnection.FromRequest (request, new NativeUrlDelegate ((body) => {
					completed ();
					request.Dispose ();
				}, (reason) => {
					Console.WriteLine ("upload failed: " + reason);
					completed ();
				}));
			});
		}