Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Implementation.QuickPulse.QuickPulseServiceClient.SendRequest C# (CSharp) 메소드

SendRequest() 개인적인 메소드

private SendRequest ( string httpVerb, string path, Action onWriteBody ) : HttpWebResponse
httpVerb string
path string
onWriteBody Action
리턴 System.Net.HttpWebResponse
        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;
        }