在 NancyFx 中向响应添加位置 header 的正确方法
Correct way to add location header to responses in NancyFx
我正在使用 Nancy 作为我的应用程序的休息 back-end。
目前,我已经设法通过此技巧将位置 header 添加到我的回复中:
var headerUri = Request.Url.SiteBase + Request.Path + "/" + processedModel.Id.ToString();
Response response = new JsonResponse(processedModel,Response.Serializers.First(s => s.CanSerialize("application/json")));
response.Headers["Location"] = headerUri;
return response;
因为我也想 return 只有 json 结果,最好的解决方案是什么?
如果你只想return JSON你可以这样做:
return Response.AsJson(model);
如果你想重定向用户,你可以这样做:
return Response.AsRedirect("url");
如果您想将 headers 附加到 JSON 结果中,您可以像这样使用 .WithHeader(...)
:
return Response.AsJson(model).WithHeader("bananas", "are always yellow");
这是一个简单的示例,其中我 return 一张带有 headers 的图像:
return Response.FromStream(thumbStream, "image/png")
.WithHeader("FileId", file.Id)
.WithHeader("FileName", file.Name);
我正在使用 Nancy 作为我的应用程序的休息 back-end。 目前,我已经设法通过此技巧将位置 header 添加到我的回复中:
var headerUri = Request.Url.SiteBase + Request.Path + "/" + processedModel.Id.ToString();
Response response = new JsonResponse(processedModel,Response.Serializers.First(s => s.CanSerialize("application/json")));
response.Headers["Location"] = headerUri;
return response;
因为我也想 return 只有 json 结果,最好的解决方案是什么?
如果你只想return JSON你可以这样做:
return Response.AsJson(model);
如果你想重定向用户,你可以这样做:
return Response.AsRedirect("url");
如果您想将 headers 附加到 JSON 结果中,您可以像这样使用 .WithHeader(...)
:
return Response.AsJson(model).WithHeader("bananas", "are always yellow");
这是一个简单的示例,其中我 return 一张带有 headers 的图像:
return Response.FromStream(thumbStream, "image/png")
.WithHeader("FileId", file.Id)
.WithHeader("FileName", file.Name);