private HttpWebResponse SendRequest(string httpVerb, string path, Action<Stream> onWriteBody)
{
var requestUri = string.Format(CultureInfo.InvariantCulture, "{0}/{1}", this.ServiceUri.AbsoluteUri.TrimEnd('/'), path.TrimStart('/'));
try
{
var request = WebRequest.Create(requestUri) as HttpWebRequest;
request.Method = httpVerb;
request.Timeout = (int)this.timeout.TotalMilliseconds;
request.Headers.Add(QuickPulseConstants.XMsQpsTransmissionTimeHeaderName, this.timeProvider.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture));
onWriteBody?.Invoke(request.GetRequestStream());
var response = request.GetResponse() as HttpWebResponse;
if (response != null)
{
return response;
}
}
catch (Exception e)
{
QuickPulseEventSource.Log.ServiceCommunicationFailedEvent(e.ToInvariantString());
}
return null;
}