我是Nancy的新手,我想要返回一个自定义的HttpStatusCode和一个body(内容).如果我返回一个HttpStatusCode,它将返回一个空白的主体.如果我返回一个字符串,那么它将返回该字符串,但总是使用200状态代码OK.
public class SendSMS : NancyModule { public SendSMS() { Post["/SendSMS"] = parameters => { return HttpStatusCode.BadRequest; // this works, no body return "Missing \"to\" parameter"; // this works, 200 status code // want to return status code with message }; } }
TheCodeJunki.. 25
您始终可以创建该Response
类型的实例并设置Body
和您StatusCode
自己.如果你想要一个快捷方式,你可以做类似的事情
var r = (Response)"Some string that goes into the body"; r.StatusCode = 123; return r;
Christian Ho.. 14
这应该工作.
public class SendSMS : NancyModule { public SendSMS() { Post["/SendSMS"] = parameters => { return Negotiate.WithModel("Missing \"to\" param") .WithStatusCode(HttpStatusCode.BadRequest) }; } }
有关更多信息,请查看有关控制内容协商的文档.
您始终可以创建该Response
类型的实例并设置Body
和您StatusCode
自己.如果你想要一个快捷方式,你可以做类似的事情
var r = (Response)"Some string that goes into the body"; r.StatusCode = 123; return r;
这应该工作.
public class SendSMS : NancyModule { public SendSMS() { Post["/SendSMS"] = parameters => { return Negotiate.WithModel("Missing \"to\" param") .WithStatusCode(HttpStatusCode.BadRequest) }; } }
有关更多信息,请查看有关控制内容协商的文档.
这是我找到的最简单的方法:
从模块返回:
return new Response { StatusCode = HttpStatusCode.NotFound, ReasonPhrase = "Resource not found" };
如果你有编码问题,最好使用
return new TextResponse(HttpStatusCode.STATUS, "Text Responsé")