Мне нужно получить ответ в виде обычного текста от контроллера веб-API ASP.NET.
Я попытался сделать запрос, Accept: text/plain
но, похоже, это не помогло. Кроме того, запрос внешний и неподвластный мне. Я хотел бы имитировать старый способ ASP.NET:
context.Response.ContentType = "text/plain";
context.Response.Write("some text);
Любые идеи?
РЕДАКТИРОВАТЬ, решение : на основе ответа Aliostad я добавил средство форматирования текста WebAPIContrib , инициализировало его в Application_Start:
config.Formatters.Add(new PlainTextFormatter());
и мой контроллер закончился примерно так:
[HttpGet, HttpPost]
public HttpResponseMessage GetPlainText()
{
return ControllerContext.Request.CreateResponse(HttpStatusCode.OK, "Test data", "text/plain");
}
источник
Если вы просто ищете простой текстовый форматировщик без добавления дополнительных зависимостей, это должно помочь.
Не забудьте добавить его в конфигурацию глобального веб-API.
Теперь вы можете передавать строковые объекты в
источник
Для ядра .net:
https://docs.microsoft.com/en-us/aspnet/core/mvc/models/formatting
источник
HttpContext.Current
.httpResponseMessage.Headers
чтобыtext/plain
в вашем контроллере при условии , что вы зарегистрированы простой форматирования текста.источник
Если Accept: text / plain не работает, значит, для текстовых mime-типов не зарегистрировано средство форматирования.
Вы можете убедиться, что для указанного типа MIME нет средств форматирования, получив список всех поддерживаемых средств форматирования из конфигурации службы.
Создайте очень простой форматировщик типов мультимедиа, поддерживающий типы mime текста.
http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters
источник
Расширение, подобное следующему, может уменьшить количество строк и украсить ваш код:
Теперь вы можете использовать определенное расширение в своем
Web API
:При маршрутизации
{DOMAIN}/api/Home/Index
вы можете увидеть следующий простой текст:источник