public virtual HttpResponseMessage MakeRequest()
{
HttpResponseMessage httpResponseMessage = null;
for(var currentRetryIndex = 0; currentRetryIndex < MaxRetries; currentRetryIndex++)
{
var httpRequestMessage = httpRequestMessageList[currentRetryIndex];
httpRequestMessage.RequestUri = new Uri(url);
if (!string.IsNullOrWhiteSpace(contentTypeString))
{
if (contentTypeString == "application/x-www-form-urlencoded")
{
httpRequestMessage.Content = new FormUrlEncodedContent(formParameters);
}
if (httpRequestMessage.Content != null)
{
httpRequestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue(contentTypeString);
}
}
WriteRequestToDebugWindow(currentRetryIndex, MaxRetries, httpRequestMessage);
using (var httpClient = new HttpClient())
{
httpResponseMessage = httpClient.SendAsync(httpRequestMessage).Result;
}
WriteResponseToDebugWindow(currentRetryIndex, MaxRetries, httpResponseMessage);
if(IsFinalRetryRequest(currentRetryIndex))
{
return httpResponseMessage;
}
if (IsRetryConditionSatisfied(httpResponseMessage, RetryType, RetryParameter))
{
return httpResponseMessage;
}
Thread.Sleep(Interval);
}
return httpResponseMessage;
}