public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender) { if (!string.IsNullOrEmpty(segue?.Identifier) && segue.Identifier == SegueIdentidfier) { if (segue.DestinationViewController is ResponseViewController responseViewController) { NetworkProvider provider = null; var selectedConfiguration = configurations[TableView.IndexPathForSelectedRow.Row]; switch (selectedConfiguration.Type) { case RequestType.WebRequestHttp: provider = new DotNetProvider(false); break; case RequestType.WebRequestHttps: provider = new DotNetProvider(true); break; case RequestType.NSUrlConnectionHttp: provider = new CocoaProvider(); break; case RequestType.HttpClientHttp: provider = new NetHttpProvider(false); break; case RequestType.HttpClientHttps: provider = new NetHttpProvider(true); break; } responseViewController.Provider = provider; } } }
public override async void ViewDidLoad() { base.ViewDidLoad(); if (Provider.GetType() == typeof(NetHttpProvider)) { TitleLabel.Text = $"HttpClient is using {NetHttpProvider.GetHandlerType().Name}"; TitleLabel.Hidden = false; } // execute request using (var stream = await Provider.ExecuteAsync()) { using (var streamReader = new StreamReader(stream)) { ResponseTextView.Text = await streamReader.ReadToEndAsync(); } } }