Отвечайте с кодом тела и статуса в Нэнси
Я новичок в Nancy, и я хочу вернуть как пользовательский HttpStatusCode, так и тело (контент). Если я верну HttpStatusCode, он вернет его с пустым телом. Если я верну строку, она вернет ее как тело, но всегда с кодом состояния 200.
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
};
}
}
Ответы
Ответ 1
Вы всегда можете создать экземпляр типа Response
и установить Body
и StatusCode
самостоятельно. Если вы хотите сделать ярлык, вы можете сделать что-то вроде
var r = (Response)"Some string that goes into the body";
r.StatusCode = 123;
return r;
Ответ 2
Это должно работать.
public class SendSMS : NancyModule
{
public SendSMS()
{
Post["/SendSMS"] = parameters =>
{
return Negotiate.WithModel("Missing \"to\" param")
.WithStatusCode(HttpStatusCode.BadRequest)
};
}
}
Для получения дополнительной информации проверьте документы контроль согласования контента.
Ответ 3
Если у вас проблемы с кодировкой, лучше использовать
return new TextResponse(HttpStatusCode.STATUS, "Text Responsé")
Ответ 4
Это самый простой способ, который я нашел:
Возврат из вашего модуля:
return new Response {
StatusCode = HttpStatusCode.NotFound, ReasonPhrase = "Resource not found"
};