@using System.Net @using System.Net.Http @inject HttpClient Http

Binary HTTP request tester

URI:

@if (responseStatusCode.HasValue) {

Response

Status:
@responseStatusCode

StatusText:
@responseStatusText

} @testOutcome @functions { string uri = ""; HttpStatusCode? responseStatusCode; string responseStatusText; string testOutcome = ""; async Task DoRequest() { responseStatusCode = null; responseStatusText = null; testOutcome = null; try { var bytes = await Http.GetByteArrayAsync(uri); if (bytes.Length != 256) { testOutcome = "Expected 256 bytes but got " + bytes.Length.ToString(); return; } var reversedBytes = bytes.ToArray(); Array.Reverse(reversedBytes); var response = await Http.PostAsync(uri, new ByteArrayContent(reversedBytes)); responseStatusCode = response.StatusCode; responseStatusText = response.ReasonPhrase; var doubleReversed = await response.Content.ReadAsByteArrayAsync(); for (int i = 0; i <= byte.MaxValue; i++) { if (doubleReversed[i] != (byte)i) { testOutcome = $"Expected byte at index {i} to have value {i} but actually was {doubleReversed[i]}"; return; } } } catch (Exception ex) { if (ex is AggregateException) { ex = ex.InnerException; } responseStatusCode = HttpStatusCode.SeeOther; testOutcome = ex.Message + Environment.NewLine + ex.StackTrace; } } }