private IHttpResponse VisitWithBody(IBodyRestResponse response, HttpRequest restReq, IDictionary <string, string> extraHeaders) { extraHeaders = extraHeaders ?? new Dictionary <string, string>(); string bodyString = _bodySerializer.ToBody(response.BodyData, restReq); int bodyLength = bodyString == null ? 0 : Encoding.UTF8.GetBytes(bodyString).Length; var rawHttpResponseBuilder = new StringBuilder(); rawHttpResponseBuilder.Append(CreateDefaultResponse(response)); rawHttpResponseBuilder.AppendFormat("Content-Length: {0}\r\n", bodyLength); rawHttpResponseBuilder.AppendFormat("Content-Type: {0}\r\n", HttpCodesTranslator.Default.GetMediaType(restReq.ResponseContentType)); foreach (var extraHeader in extraHeaders) { rawHttpResponseBuilder.AppendFormat($"{extraHeader.Key}: {extraHeader.Value}\r\n"); } rawHttpResponseBuilder.Append(CreateHttpNewLine()); rawHttpResponseBuilder.Append(bodyString); return(CreateHttpResponse(rawHttpResponseBuilder)); }
private IHttpResponse VisitWithBody(IBodyRestResponse response, HttpRequest restReq) { return(VisitWithBody(response, restReq, null)); }