Как мы знаем по умолчанию, в среде веб-API есть форматирующие элементы, которые могут создавать JSON или XML. Если вы хотите создавать некоторые другие типы вывода, то во многих местах, которые я читал, требуется реализовать пользовательский формат форматов, который будет делать то, что вы хотеть. Но мне нужно вернуть необработанный HTML-код из моего контроллера веб-API, и если я создам HttpResponseMessage таким образом:
response = new HttpResponseMessage()
{
Content = new StringContent(
"<p>Hello world</p>",
Encoding.UTF8,
"text/html")
};
Затем у меня есть исходный HTML-код в моем ответе, который браузер распознает и отобразит. Мой вопрос на самом деле Почему он работает без использования какого-либо пользовательского форматирования, и в этом случае мне нужно его создать, и в котором я не должен.
Formatters предоставляют вашему сервису гибкость для ответа на клиента с теми же данными, но в произвольном формате в зависимости от того, что попросил клиент. Если клиент запрашивает application/json
, ваша служба будет использовать форматировщик JSON для ответа JSON.
Насколько я знаю, formatters применяются только в том случае, когда ваш метод напрямую возвращает объект, который будет сериализован. В вашем случае, независимо от типа носителя, который запрашивал клиент, вы возвращаете HttpResponseMessage
со строкой, содержащей html-контент.
Как правило, вы хотите использовать форматировщики, если хотите, чтобы ваша служба потенциально обслуживала одни и те же данные в разных форматах в зависимости от заголовка Accept
, указанного клиентом.