public override void StartLoading() { if (!UseCache) { var connectionRequest = (NSMutableUrlRequest)Request.MutableCopy; // we need to mark this request with our header so we know not to handle it in +[NSURLProtocol canInitWithRequest:]. connectionRequest.SetValueForKey("", MtRnCachingUrlHeader); var connection = NSUrlConnection.FromRequest(connectionRequest, this); Connection = connection; } else { var cache = NSKeyedUnarchiver.UnarchiveFile(CachePathForRequest(this.Request)) as MtRnCachedData; if (cache != null) { var data = cache.Data; var response = cache.Response; var redirectRequest = cache.RedirectRequest; if (redirectRequest != null) { this.Client.Redirected(this, redirectRequest, response); } else { Client.ReceivedResponse(this, response, NSUrlCacheStoragePolicy.NotAllowed); Client.DataLoaded(this, data); Client.FinishedLoading(this); } } else { this.Client.FailedWithError(NSError.FromDomain("TODO", NSUrlError.CannotConnectToHost)); } } }
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(); })); }); }
private bool ShouldStartLoad(UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navigationType) { if (Url != null && request.Url.Equals(Url)) { return(true); } Url = request.Url; if (Url.Scheme.Equals("acs")) { var b = new StringBuilder(Uri.UnescapeDataString(request.Url.ToString())); b.Replace("acs://settoken?token=", string.Empty); var token = RequestSecurityTokenResponse.FromJSON(b.ToString()); _messageHub.Publish(new RequestTokenMessage(this) { TokenResponse = token }); DismissViewController(true, null); } NSUrlConnection.FromRequest(request, new LoginConnectionDelegate(this)); return(false); }
public override bool ShouldStartLoad(UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navigationType) { if (null != _controller && _controller.Url != null) { if (request.Url.Equals(_controller.Url)) { return(true); } } if (_controller != null) { _controller.Url = request.Url; var scheme = _controller.Url.Scheme; if (scheme.Equals("acs")) { var b = new StringBuilder(Uri.UnescapeDataString(request.Url.ToString())); b.Replace("acs://settoken?token=", string.Empty); RequestSecurityTokenResponseStore.Instance.RequestSecurityTokenResponse = RequestSecurityTokenResponse.FromJSON(b.ToString()); _controller.NavigationController.PopToRootViewController(true); } } NSUrlConnection.FromRequest(request, _urlDelegate); return(false); }
private async Task <HttpResponseMessage> Send(Uri requestUri, string content, string method, IDictionary <String, String> headers) { if (null == Certificate) { throw new ApplicationException("No certificate has been provided. The request is cancelled."); } _taskSource = new TaskCompletionSource <HttpResponseMessage>(); var request = new NSMutableUrlRequest(new NSUrl(requestUri.ToString()), NSUrlRequestCachePolicy.ReloadIgnoringCacheData, TimeOut) { HttpMethod = method, Body = NSData.FromString(content) }; if (null != headers) { foreach (var header in headers) { request[header.Key] = new NSString(header.Value); } } var conn = NSUrlConnection.FromRequest(request, this); return(await _taskSource.Task); }
public async Task <Stream> ExecuteAsync() { taskCompletionSource = new TaskCompletionSource <Stream>(); var req = new NSUrlRequest(new NSUrl(NetworkProvider.WisdomUrl), NSUrlRequestCachePolicy.ReloadIgnoringCacheData, 10); NSUrlConnection.FromRequest(req, this); return(await taskCompletionSource.Task); }
public void HttpSample() { var req = new NSUrlRequest(new NSUrl(Application.WisdomUrl), NSUrlRequestCachePolicy.ReloadIgnoringCacheData, 10); NSUrlConnection.FromRequest(req, this); }