protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { string[] urls = Mint.SharedInstance.BlacklistUrls(); string url = request.RequestUri.ToString(); bool urlIsBlacklisted = urls.FirstOrDefault(p => url.Contains(p)) != null; HttpResponseMessage responseMessage = null; if (!urlIsBlacklisted) { NetworkDataFixture networkData = new NetworkDataFixture(); networkData.Url = url; networkData.Protocol = request.RequestUri.Scheme; byte[] contentBytes = await request.Content.ReadAsByteArrayAsync(); networkData.RequestLength = NSNumber.FromInt32(contentBytes.Length); networkData.AppendStartTime(); string exceptionCaughtMessage = null; try { responseMessage = await base.SendAsync(request, cancellationToken); } catch (Exception ex) { exceptionCaughtMessage = ex.Message; } networkData.AppendEndTime(); int statusCode = (int)responseMessage.StatusCode; NSNumber statusCodeNumber = NSNumber.FromInt32(statusCode); networkData.StatusCode = statusCodeNumber; networkData.AppendWithStatusCode(statusCodeNumber); byte[] receivedBytes = await responseMessage.Content.ReadAsByteArrayAsync(); networkData.ResponseLength = NSNumber.FromInt32(receivedBytes.Length); if (exceptionCaughtMessage != null) { networkData.Exception = exceptionCaughtMessage; } networkData.SaveToDisk(); } else { responseMessage = await base.SendAsync(request, cancellationToken); } return(responseMessage); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib. if (session == null) { session = InitBackgroundSession(); } LogHandledException1Button.TouchUpInside += LogHandledException1Button_TouchUpInside; LogHandledException2Button.TouchUpInside += LogHandledException2Button_TouchUpInside; WebRequestButton.TouchUpInside += WebRequestRestPostButton_TouchUpInside; HTTPClientButton.TouchUpInside += HttpClientRestPostButton_TouchUpInside; LogEventWithTagButton.TouchUpInside += LogLevelEventButton_TouchUpInside; ModernHttpClientButton.TouchUpInside += ModernHttpClientButton_TouchUpInside; StartSessionButton.TouchUpInside += StartSessionButton_TouchUpInside; CloseSessionButton.TouchUpInside += CloseSessionButton_TouchUpInside; FlushButton.TouchUpInside += FlushButton_TouchUpInside; StartTransactionButton.TouchUpInside += StartTransactionButton_TouchUpInside; StopTransactionButton.TouchUpInside += StopTransactionButton_TouchUpInside; NSUrlSessionButton.TouchUpInside += NSUrlSessionButton_TouchUpInside; NSUrlConnectionButton.TouchUpInside += NSUrlConnectionButton_TouchUpInside; UnobservedTaskButton.TouchUpInside += TaskUnawaitedMethod; Mint.SharedInstance.HandleUnobservedException = (Exception arg) => { return(true); }; Mint.SharedInstance.CachedRequestsSent += (sender, args) => { LoggedRequestEventArgs loggedRequestEventArgs = (LoggedRequestEventArgs)sender; Debug.WriteLine("Logged Request Handled {0} with JSON:\r\n{1}", loggedRequestEventArgs.ResponseResult.ResultState == MintResultState.OKResultState ? "Successfully" : "with Failure and", loggedRequestEventArgs.ResponseResult.ClientRequest); ShowAlert("CachedRequestsSent"); }; Mint.SharedInstance.NetworkDataIntercepted += (sender, args) => { NetworkDataFixture networkDataFixture = (NetworkDataFixture)sender; Debug.WriteLine("Network Data Logged: {0}", networkDataFixture.ToJSONString); ShowAlert("NetworkDataIntercepted"); }; Mint.SharedInstance.AddExtraData(new ExtraData("GlobalKey1", "GlobalValue1")); LimitedExtraDataList extraDataList = new LimitedExtraDataList(); extraDataList.AddWithKey("ListGlobalKey1", "ListGlobalValue1"); Mint.SharedInstance.AddExtraDataList(extraDataList); Mint.SharedInstance.ClearExtraData(); LimitedExtraDataList globalExtraDataList = Mint.SharedInstance.ExtraDataList; Mint.SharedInstance.ExtraDataList.AddWithKey("GlobalKey1", "GlobalValue1"); Mint.SharedInstance.ExtraDataList.Add(new ExtraData("GlobalExtraKey1", "GlobalExtraValue1")); Mint.SharedInstance.RemoveExtraDataWithKey("GlobalKey1"); Mint.SharedInstance.ClearBreadcrumbs(); Mint.SharedInstance.LeaveBreadcrumb("SplunkMint-iOS.ClientAppViewController:ViewDidLoad"); Mint.SharedInstance.UserIdentifier = "*****@*****.**"; Mint.SharedInstance.AddURLToBlacklist("splunk"); }
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { string[] urls = Mint.SharedInstance.BlacklistUrls (); string url = request.RequestUri.ToString (); bool urlIsBlacklisted = urls.FirstOrDefault (p => url.Contains (p)) != null; HttpResponseMessage responseMessage = null; if (!urlIsBlacklisted) { NetworkDataFixture networkData = new NetworkDataFixture (); networkData.Url = url; networkData.Protocol = request.RequestUri.Scheme; byte[] contentBytes = await request.Content.ReadAsByteArrayAsync (); networkData.RequestLength = NSNumber.FromInt32 (contentBytes.Length); networkData.AppendStartTime (); string exceptionCaughtMessage = null; try { responseMessage = await base.SendAsync (request, cancellationToken); } catch (Exception ex) { exceptionCaughtMessage = ex.Message; } networkData.AppendEndTime (); int statusCode = (int)responseMessage.StatusCode; NSNumber statusCodeNumber = NSNumber.FromInt32 (statusCode); networkData.StatusCode = statusCodeNumber; networkData.AppendWithStatusCode (statusCodeNumber); byte[] receivedBytes = await responseMessage.Content.ReadAsByteArrayAsync (); networkData.ResponseLength = NSNumber.FromInt32 (receivedBytes.Length); if (exceptionCaughtMessage != null) networkData.Exception = exceptionCaughtMessage; networkData.SaveToDisk (); } else { responseMessage = await base.SendAsync (request, cancellationToken); } return responseMessage; }