예제 #1
0
        public string GetMatchingKey(HttpRequestMessage request)
        {
            var requestHeaders = new Dictionary <string, List <string> >();

            request.Headers.ForEach(h => requestHeaders.Add(h.Key, h.Value.ToList()));
            if (request.Content != null)
            {
                request.Content.Headers.ForEach(h => requestHeaders.Add(h.Key, h.Value.ToList()));
            }
            return(GetMatchingKey(request.Method.Method, RecorderUtilities.EncodeUriAsBase64(request.RequestUri), requestHeaders));
        }
예제 #2
0
        public RecordEntry(HttpResponseMessage response)
        {
            HttpRequestMessage request = response.RequestMessage;

            RequestUri        = request.RequestUri.ToString();
            EncodedRequestUri = RecorderUtilities.EncodeUriAsBase64(request.RequestUri);
            RequestMethod     = request.Method.Method;

            RequestHeaders  = new Dictionary <string, List <string> >();
            ResponseHeaders = new Dictionary <string, List <string> >();

            RequestBody  = string.Empty;
            ResponseBody = string.Empty;

            RequestContentType  = DetectContentType(request.Content);
            ResponseContentType = DetectContentType(response.Content);

            request.Headers.ForEach(h => RequestHeaders.Add(h.Key, h.Value.ToList()));
            response.Headers.ForEach(h => ResponseHeaders.Add(h.Key, h.Value.ToList()));

            StatusCode = response.StatusCode;

            //REQUEST
            if (RequestContentType != RecordEntryContentType.Null)
            {
                RequestBody = RecorderUtilities.FormatHttpContent(request.Content);
                request.Content.Headers.ForEach(h => RequestHeaders.Add(h.Key, h.Value.ToList()));
            }

            //RESPONSE
            if (ResponseContentType != RecordEntryContentType.Null)
            {
                ResponseBody = RecorderUtilities.FormatHttpContent(response.Content);
                response.Content.Headers.ForEach(h => ResponseHeaders.Add(h.Key, h.Value.ToList()));
            }
        }
예제 #3
0
 public static string EncodeUriAsBase64(Uri requestUri)
 {
     return(RecorderUtilities.EncodeUriAsBase64(requestUri.PathAndQuery));
 }
예제 #4
0
 public string GetMatchingKey(RecordEntry recordEntry)
 {
     return(GetMatchingKey(recordEntry.RequestMethod,
                           (recordEntry.EncodedRequestUri ?? RecorderUtilities.EncodeUriAsBase64(recordEntry.RequestUri)),
                           recordEntry.RequestHeaders));
 }