【问题标题】:Different HttpStatusCode for different clients in NancyNancy中不同客户端的不同HttpStatusCode
【发布时间】:2013-04-22 21:12:18
【问题描述】:

导航到http://localhost:57645 后,下面的代码对于DHC by Restlet 返回 200(OK),对于“Chrome 浏览器”返回 500(InternalServerError)。

public class SampleModule : Nancy.NancyModule
{
    public SampleModule()
    {
        Get["/"] = _ =>
        {
            return Negotiate
                .WithStatusCode(HttpStatusCode.OK)
                .WithModel(10);
        };
}

这怎么可能?

【问题讨论】:

    标签: asp.net nancy dhc


    【解决方案1】:

    您在第一个示例中遇到的行为是预期的。浏览器正在请求text/html

    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Nancy 正在尝试基于 10 类型定位视图,因为 10Int32 的类型,Nancy 正试图找到一个名为 Int32 的视图,因为它试图用视图响应,因为这是浏览器要求的。

    默认情况下,您在 Chrome 中使用的开发客户端很可能会发送 JSON 请求,这就是它看起来工作的原因。

    您可以在此处阅读更多信息:

    http://www.philliphaydon.com/2013/04/nancyfx-revisiting-content-negotiation-and-apis-part-1/

    【讨论】:

      【解决方案2】:

      找到了!在我的情况下最好使用

      return Response.AsJson(10);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-22
        • 2023-04-10
        • 2012-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多