我需要從ASP.NET Web API控制器以純文本形式獲取響應。有沒有辦法強制ASP.NET Web API返回純文本?
我試過用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會將JSON對象返回到所有方法的99%,只有少數(非常少)方法需要純字符串響應(對於許多我使用MemoryStream返回的方法數據直接在響應中,所以這不成問題。)只有2或3個方法返回了一個.NET字符串,並且它以JSON字符串形式返回。恕我直言,你的答案是KISS對這個問題的迴應(雖然它不是100%乾的,但我只是寫了一個擴展方法來將字符串做到這一點...... :-)不錯!)StringContent非常好。謝謝。 – Loudenvier 2013-06-15 12:34:33
有許多自定義的XXXContent類可以創建特定類型的內容,使這類事情變得非常簡單。 – 2015-03-20 02:19:07
我用這種方法看到了正確的答案。但是,HttpContext.Current現在爲空。對此有何想法? – 2015-05-12 22:05:25