public async Task <ProbeResult> ExecuteProbe(EndpointProbe probe) { string payloadString = probe.Payload?.GetType() == typeof(JObject) ? JsonConvert.SerializeObject(probe.Payload) : probe.Payload?.ToString() ?? string.Empty; HttpRequestMessage request = new HttpRequestMessage { Method = probe.Method, Content = new StringContent( payloadString, Encoding.UTF8, "application/json") }; try { Stopwatch timer = Stopwatch.StartNew(); HttpResponseMessage response = TargetAPI.SendAsync(request).Result; timer.Stop(); return(new ProbeResult { Endpoint = probe.Endpoint, Method = probe.Method.Method, RequestPayload = request.Content.ReadAsStringAsync().Result, UserID = UserID, ConcurrentUsersAtRequestTime = NumberOfConcurrentUsers, bSuccessResponse = response.IsSuccessStatusCode ? true : false, StatusCode = (int)response.StatusCode, StatusMessage = response.StatusCode.ToString(), RoundTripTime = timer.ElapsedMilliseconds }); } catch (TaskCanceledException) { return(new ProbeResult { Endpoint = probe.Endpoint, Method = probe.Method.Method, RequestPayload = request.Content.ReadAsStringAsync().Result, UserID = UserID, ConcurrentUsersAtRequestTime = NumberOfConcurrentUsers, bRequestTimeout = true, StatusMessage = $"Client-side request timeout (longer than {Defaults.RequestTimeoutInSeconds})" }); } finally { ++Progress; } }
public DearTarget(Platform platform, TargetAPI api, Optimization optimization, BuildType buildType) : base(platform, DevEnv.vs2019, optimization) { Api = api; Build = buildType; }