コード例 #1
0
        private static void TryProcessResponse(IAgent agent, Task responseTask, ITransaction transaction, ISegment segment, IExternalSegmentData externalSegmentData)
        {
            try
            {
                if (!ValidTaskResponse(responseTask) || (segment == null))
                {
                    return;
                }

                var restResponse = RestSharpHelper.GetRestResponse(responseTask);

                var statusCode = RestSharpHelper.GetResponseStatusCode(restResponse);
                if (statusCode != 0)
                {
                    externalSegmentData.SetHttpStatusCode(statusCode);
                }

                var headers = RestSharpHelper.GetResponseHeaders(restResponse);
                if (headers == null)
                {
                    return;
                }

                transaction.ProcessInboundResponse(headers, segment);
            }
            catch (Exception ex)
            {
                agent.HandleWrapperException(ex);
            }
        }
コード例 #2
0
        private static void TryProcessResponse(WebResponse response, ITransaction transaction, ISegment segment, IExternalSegmentData externalSegmentData)
        {
            if (segment == null)
            {
                return;
            }

            var httpWebResponse = response as HttpWebResponse;
            var statusCode      = httpWebResponse?.StatusCode;

            if (statusCode.HasValue)
            {
                externalSegmentData.SetHttpStatusCode((int)statusCode.Value);
            }

            var headers = response?.Headers?.ToDictionary();

            if (headers == null)
            {
                return;
            }

            transaction.ProcessInboundResponse(headers, segment);
        }
コード例 #3
0
        private static void TryProcessResponse(IAgent agent, Task <HttpResponseMessage> response, ITransaction transaction, ISegment segment, IExternalSegmentData externalSegmentData)
        {
            if (!ValidTaskResponse(response) || (segment == null))
            {
                return;
            }

            TryProcessResponse(agent, response?.Result, transaction, segment, externalSegmentData);
        }
コード例 #4
0
        private static void TryProcessResponse(IAgent agent, HttpResponseMessage response, ITransaction transaction, ISegment segment, IExternalSegmentData externalSegmentData)
        {
            try
            {
                if (response == null || segment == null)
                {
                    return;
                }

                var httpStatusCode = response.StatusCode;
                externalSegmentData.SetHttpStatusCode((int)httpStatusCode);

                var headers = response.Headers?.ToList();
                if (headers == null)
                {
                    return;
                }

                var flattenedHeaders = headers.Select(Flatten);

                transaction.ProcessInboundResponse(flattenedHeaders, segment);
            }
            catch (Exception ex)
            {
                agent.HandleWrapperException(ex);
            }
        }
コード例 #5
0
        private static void TryProcessResponse(IAgent agent, Task <HttpResponseMessage> response, ITransaction transaction, ISegment segment, IExternalSegmentData externalSegmentData)
        {
            try
            {
                if (!ValidTaskResponse(response) || (segment == null))
                {
                    return;
                }

                var result = response?.Result;

                var httpStatusCode = result?.StatusCode;
                if (httpStatusCode.HasValue)
                {
                    externalSegmentData.SetHttpStatusCode((int)httpStatusCode);
                }

                var headers = result?.Headers?.ToList();
                if (headers == null)
                {
                    return;
                }

                var flattenedHeaders = headers.Select(Flatten);

                transaction.ProcessInboundResponse(flattenedHeaders, segment);
            }
            catch (Exception ex)
            {
                agent.HandleWrapperException(ex);
            }
        }