如果我们在应用程序中搜索失败,我们希望增加记录Nancy服务给出的所有请求和响应的可能性。为此,我们添加了一些管道挂钩。 但不幸的是,我无法获得我们的回应。当我执行将内容呈现到响应流(内容)的委托时,我的响应流(毫秒)就被处理了。
public void LogResponse(NancyContext context) {
string CreateResponseMessage() {
return $"Response (Client: {context.Request.UserHostAddress}) [{context.Request.Method}] {context.Request.Url}, " +
$"Status code: {(int) context.Response.StatusCode} {context.Response.StatusCode}";
}
string CreateContentMessage() {
using (var ms = new MemoryStream())
{
// For some reason, when executing this line, my ms is disposed
context.Response.Contents(ms);
ms.Seek(0, SeekOrigin.Begin);
using (var sr = new StreamReader(ms)) {
var headers = FormatHeaders(context.Response.Headers);
var content = sr.ReadToEnd();
return
$"Headers:{NewLine}{headers}{NewLine}" +
$"Body:{NewLine} {content}";
}
}
}
Log.Info(CreateResponseMessage());
Log.Verbose(CreateContentMessage);
}
这是获取身体内容的错误方法吗?有办法吗?