private void logNetworkRequest_Click(object sender, EventArgs e) { Random random = new Random(); string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" }; string method = methods[random.Next(0, methods.Length)]; string url = urls[random.Next(0, urls.Length)]; if (random.Next(0, 2) == 1) { url = url + "?doYouLoveCrittercism=YES"; } // latency in milliseconds long latency = (long)Math.Floor(4000.0 * random.NextDouble()); long bytesRead = random.Next(0, 10000); long bytesSent = random.Next(0, 10000); long responseCode = 200; if (random.Next(0, 5) == 0) { // Some common response other than 200 == OK . long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 }; responseCode = responseCodes[random.Next(0, responseCodes.Length)]; } Crittercism.LogNetworkRequest( method, url, latency, bytesRead, bytesSent, (HttpStatusCode)responseCode, WebExceptionStatus.Success); }
partial void ManualNetworkRequestButton_TouchUpInside(UIButton sender) { Random random = new Random(); string[] methods = { "GET", "POST", "HEAD" }; string method = methods [random.Next(methods.Length)]; string[] urls = { "http://www.critterwebservice.com", "http://www.crittersearchengine.com/?ilove=critters", "http://www.critterdatingservice.com/nutlovers", "http://www.crittergourmetfood.com/nutsandberries.htm", "http://www.critterworldnews.com/summerfun", "http://www.crittermoviereviews.com/starring=mrscritter", "http://www.critterburrowdecor.com" }; string url = urls [random.Next(urls.Length)]; int[] responseCodes = { 200, 202, 400, 404 }; int responseCode = responseCodes [random.Next(responseCodes.Length)]; Crittercism.LogNetworkRequest( method, url, random.NextDouble(), random.Next(10000), random.Next(1000), responseCode, 0); }
private static void CommandLogNetworkRequest(string arg) { Random random = new Random(); string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" }; string method = methods[random.Next(0, methods.Length)]; string urlString = ""; if (!arg.Equals("")) { urlString = urls[random.Next(0, urls.Length)] + "?arg=" + WebUtility.UrlEncode(arg); } else if (random.Next(0, 2) == 1) { urlString = randomURLString(); } ; // latency in milliseconds long latency = (long)Math.Floor(4000.0 * random.NextDouble()); long bytesRead = random.Next(0, 10000); long bytesSent = random.Next(0, 10000); long responseCode = 200; if (random.Next(0, 5) == 0) { // Some common response other than 200 == OK . long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 }; responseCode = responseCodes[random.Next(0, responseCodes.Length)]; } ; WebExceptionStatus exceptionStatus = WebExceptionStatus.Success; if (random.Next(0, 5) == 0) { // Simulate a network WebException was encountered. WebExceptionStatus[] exceptionStatuses = new WebExceptionStatus[] { WebExceptionStatus.NameResolutionFailure, WebExceptionStatus.ConnectFailure, WebExceptionStatus.ReceiveFailure, WebExceptionStatus.SendFailure, WebExceptionStatus.ConnectionClosed, WebExceptionStatus.TrustFailure, WebExceptionStatus.KeepAliveFailure, WebExceptionStatus.Timeout }; exceptionStatus = exceptionStatuses[random.Next(0, exceptionStatuses.Length)]; // We didn't receive a simulated response, after all. responseCode = 0; } ; Crittercism.LogNetworkRequest( method, urlString, latency, bytesRead, bytesSent, (HttpStatusCode)responseCode, WebExceptionStatus.Success); }
public void LogNetworkRequestTest() { APM.interval = 1; TestHelpers.StartApp(); Assert.IsNull(TestHelpers.TestNetwork().AppLoadResponse); Assert.IsTrue(APM.enabled); string method = "GET"; string uriString = "http://www.mrscritter.com"; long latency = 4000; long bytesRead = 10000; long bytesSent = 10000; long responseCode = 200; Crittercism.LogNetworkRequest( method, uriString, latency, bytesRead, bytesSent, (HttpStatusCode)responseCode, WebExceptionStatus.Success); Trace.WriteLine("Crittercism.LogNetworkRequest returned"); Trace.WriteLine("APM.enabled == " + APM.enabled); MessageReport messageReport = TestHelpers.DequeueMessageType(typeof(APMReport)); if (messageReport != null) { Trace.WriteLine("We found an APMReport (YAY)"); } else { Trace.WriteLine("We didn't find an APMReport (BOO)"); Trace.WriteLine("APM.enabled == " + APM.enabled); Assert.IsNotNull(messageReport, "Expected an APMReport message"); }; String asJson = JsonConvert.SerializeObject(messageReport); Trace.WriteLine("asJson == " + asJson); string[] jsonStrings = new string[] { "\"d\":", "\"GET\"", "\"http://www.mrscritter.com\"", "4000", "10000", "200" }; foreach (String jsonFragment in jsonStrings) { Trace.WriteLine("jsonFragment == " + jsonFragment); Trace.WriteLine("asJson.Contains(jsonFragment) == " + asJson.Contains(jsonFragment)); Assert.IsTrue(asJson.Contains(jsonFragment)); } ; }
private static void LogNetworkRequest() { Random random = new Random(); string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" }; string method = methods[random.Next(0, methods.Length)]; string urlString = randomURLString(); // latency in milliseconds long latency = (long)Math.Floor(4000.0 * random.NextDouble()); long bytesRead = random.Next(0, 10000); long bytesSent = random.Next(0, 10000); long responseCode = 200; if (random.Next(0, 5) == 0) { // Some common response other than 200 == OK . long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 }; responseCode = responseCodes[random.Next(0, responseCodes.Length)]; } ; WebExceptionStatus exceptionStatus = WebExceptionStatus.Success; if (random.Next(0, 5) == 0) { // Simulate a network WebException was encountered. WebExceptionStatus[] exceptionStatuses = new WebExceptionStatus[] { WebExceptionStatus.ConnectFailure, WebExceptionStatus.SendFailure, WebExceptionStatus.RequestCanceled, WebExceptionStatus.UnknownError, WebExceptionStatus.MessageLengthLimitExceeded }; exceptionStatus = exceptionStatuses[random.Next(0, exceptionStatuses.Length)]; // We didn't receive a simulated response, after all. responseCode = 0; } ; Crittercism.LogNetworkRequest( method, urlString, latency, bytesRead, bytesSent, (HttpStatusCode)responseCode, WebExceptionStatus.Success); }
private static void CommandLogNetworkRequest(string arg) { Random random = new Random(); string[] methods = new string[] { "GET", "POST", "HEAD", "PUT" }; string method = methods[random.Next(0, methods.Length)]; string url = urls[random.Next(0, urls.Length)]; if (!arg.Equals("")) { url = url + "?arg=" + WebUtility.UrlEncode(arg); } else if (random.Next(0, 2) == 1) { url = url + "?doYouLoveCrittercism=YES"; } // latency in milliseconds long latency = (long)Math.Floor(4000.0 * random.NextDouble()); long bytesRead = random.Next(0, 10000); long bytesSent = random.Next(0, 10000); long responseCode = 200; if (random.Next(0, 5) == 0) { // Some common response other than 200 == OK . long[] responseCodes = new long[] { 301, 308, 400, 401, 402, 403, 404, 405, 408, 500, 502, 503 }; responseCode = responseCodes[random.Next(0, responseCodes.Length)]; } Console.WriteLine("LogNetworkRequest: \"" + url + "\""); Crittercism.LogNetworkRequest( method, url, latency, bytesRead, bytesSent, (HttpStatusCode)responseCode, WebExceptionStatus.Success); }
protected override void OnCreate(Bundle bundle) { // Initialize Crittercism Crittercism.Init(ApplicationContext, "YOUR APP ID GOES HERE"); base.OnCreate(bundle); SetContentView(Resource.Layout.Main); Button ButtonLeaveBreadcrumb = FindViewById <Button>(Resource.Id.ButtonBreadcrumb); ButtonLeaveBreadcrumb.Click += delegate(object sender, EventArgs e) { Crittercism.LeaveBreadcrumb("My Breadcrumb"); }; Button ButtonSetUserName = FindViewById <Button>(Resource.Id.ButtonSetUserName); ButtonSetUserName.Click += delegate { Crittercism.SetUserName("MrsCritter"); }; Button ButtonSetMetadata = FindViewById <Button>(Resource.Id.ButtonSetMetadata); ButtonSetMetadata.Click += delegate { Crittercism.SetMetadata("Game Level", "5"); }; Button ButtonCrash = FindViewById <Button>(Resource.Id.ButtonCrash); ButtonCrash.Click += delegate(object sender, EventArgs e) { CrashInnerException(); //CrashDivideByZero(); //CrashNullReference(); //CrashIndexOutOfRange(); //CrashCustomException(); }; Button ButtonHandledException = FindViewById <Button>(Resource.Id.ButtonHandledException); ButtonHandledException.Click += delegate(object sender, EventArgs e) { try { CrashInnerException(); } catch (System.Exception error) { Crittercism.LogHandledException(error); } }; Button ButtonLogNetworkRequest = FindViewById <Button>(Resource.Id.ButtonLogNetworkRequest); ButtonLogNetworkRequest.Click += delegate(object sender, EventArgs e) { Random random = new Random(); string[] methods = { "GET", "POST", "HEAD" }; string method = methods[random.Next(methods.Length)]; string[] urls = { "http://www.critterwebservice.com", "http://www.crittersearchengine.com/?ilove=critters", "http://www.critterdatingservice.com/nutlovers", "http://www.crittergourmetfood.com/nutsandberries.htm", "http://www.critterworldnews.com/summerfun", "http://www.crittermoviereviews.com/starring=mrscritter", "http://www.critterburrowdecor.com" }; string url = urls[random.Next(urls.Length)]; int[] responseCodes = { 200, 202, 400, 404 }; int responseCode = responseCodes[random.Next(responseCodes.Length)]; Crittercism.LogNetworkRequest( method, url, (long)(1000 * random.NextDouble()), random.Next(10000), random.Next(1000), responseCode, 0); }; Button ButtonBeginTransaction = FindViewById <Button>(Resource.Id.ButtonBeginTransaction); ButtonBeginTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.BeginUserflow("Exercise"); }; Button ButtonEndTransaction = FindViewById <Button>(Resource.Id.ButtonEndTransaction); ButtonEndTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.EndUserflow("Exercise"); }; Button ButtonFailTransaction = FindViewById <Button>(Resource.Id.ButtonFailTransaction); ButtonFailTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.FailUserflow("Exercise"); }; Button ButtonSetTransactionValue = FindViewById <Button>(Resource.Id.ButtonSetTransactionValue); Button ButtonGetTransactionValue = FindViewById <Button>(Resource.Id.ButtonGetTransactionValue); ButtonSetTransactionValue.Click += delegate(object sender, EventArgs e) { Random random = new Random(); Crittercism.SetUserflowValue("Exercise", random.Next(1000)); }; ButtonGetTransactionValue.Click += delegate(object sender, EventArgs e) { int value = Crittercism.GetUserflowValue("Exercise"); ButtonGetTransactionValue.Text = value.ToString(); }; }