Подтвердить что ты не робот

Отвечайте с кодом тела и статуса в Нэнси

Я новичок в 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
            };
    }
}
4b9b3361

Ответ 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"
            };