Как вернуть только код состояния в запросе POST в пакете услуг вместо HTML-страницы - PullRequest
5 голосов
/ 16 ноября 2011

создал службу REST с помощью servicestack, и в пост-запросе я возвратил объект следующим образом

  return new HttpResult(request)
                {
                    StatusCode = HttpStatusCode.Created,

                };

запрос: объект, который я разместил в базе данных

servicestack post request

Когда я проверяю это в фиддлере, он отображает всю HTML-страницу сервис-стека в теле ответа, вместо этого я хотел бы вернуть только код статуса, поэтому, пожалуйста, скажите мне, как я могу это сделать?

Спасибо

1 Ответ

5 голосов
/ 16 ноября 2011

В версиях до

https://github.com/ServiceStack/ServiceStack/downloads

До этого вы все равно можете форсировать желаемый ContentType, изменив Accept: application / json Заголовок запроса на HttpClient или добавив ? Format = json в строку запроса вашего URL .

Итак, теперь, если вы не хотите сериализовать DTO, вы не добавляете его в HttpResult:

return new HttpResult() { StatusCode = HttpStatusCode.Created };

Обратите внимание, что вы все равно можете получить пустой ответ Html при вызове этой службы в браузере (или любом клиенте Rest, который принимает: text / html). Вы можете принудительно установить ContentType , который не будет выводить никакого ответа, если он имеет пустую полезную нагрузку (например, JSON / JSV), указав его также в результате, например;

return new HttpResult() { 
    StatusCode = HttpStatusCode.Created,
    ContentType = ContentType.Json
};
...