Beispiel #1
0
        public static BodyDataPayload CreateFromRecord(HttpRequestRecord record, IDictionary <string, StringValues>?headers, ReadOnlySpan <byte> body, IBodyDataTransformer transformer)
        {
            if (body.IsEmpty)
            {
                return(new BodyDataPayload(Convert.ToBase64String(Array.Empty <byte>()), true, ""));
            }

            var payloadBody                = body;
            var payloadBodyContentType     = string.Empty;
            var transformedBodyContentType = string.Empty;

            if (headers != null && headers.TryGetValue("Content-Type", out var contentType))
            {
                if (transformer.TryTransform(record, body, contentType, out var result))
                {
                    payloadBodyContentType     = result.TransformedContentType;
                    transformedBodyContentType = result.TransformedContentType;
                    payloadBody = result.Body;
                }
                else
                {
                    payloadBodyContentType = contentType;
                }
            }

            if (payloadBodyContentType.StartsWith("text/") ||
                payloadBodyContentType.StartsWith("application/json") ||
                payloadBodyContentType.StartsWith("application/x-www-form-urlencoded"))
            {
                return(new BodyDataPayload(Encoding.UTF8.GetString(payloadBody), false, transformedBodyContentType));
            }
            else
            {
                return(new BodyDataPayload(Convert.ToBase64String(payloadBody), true, transformedBodyContentType));
            }
        }
Beispiel #2
0
        public static BodyDataPayload CreateFromRecord(HttpRequestRecord record, IDictionary <string, StringValues> headers, byte[] body, IBodyDataTransformer transformer)
        {
            if (headers.TryGetValue("Content-Type", out var contentType))
            {
                var result = transformer.Transform(record, body, contentType);

                if (result.ContentType.StartsWith("text/") ||
                    result.ContentType.StartsWith("application/json") ||
                    result.ContentType.StartsWith("text/json") ||
                    result.ContentType.StartsWith("application/x-www-form-urlencoded"))
                {
                    return(new BodyDataPayload(new UTF8Encoding(false).GetString(result.Body), false, result.TransformedContentType ?? ""));
                }
                else
                {
                    return(new BodyDataPayload(Convert.ToBase64String(result.Body), true, result.TransformedContentType ?? ""));
                }
            }

            return(new BodyDataPayload(Convert.ToBase64String(body), true, ""));
        }
Beispiel #3
0
 public BodyDataTransformerSet(IBodyDataTransformer request, IBodyDataTransformer response)
 {
     Request  = request;
     Response = response;
 }