从web api帖子返回text \ plain json响应

时间:2014-07-21 09:43:35

标签: c# json asp.net-web-api

我在从WebApi返回'text / plain'json响应时遇到问题 我需要将其作为text/plain返回,默认情况下将其作为application / json返回 我遇到的问题正是这个问题link。 这不是一个重复的帖子,因为我已阅读多篇帖子,但仍然有一个小问题。

这是我的服务器代码:

public HttpResponseMessage Post()
{
       var response = GetModel();
       string jsonRes = JsonConvert.SerializeObject(response);

       var resp = new HttpResponseMessage();
       resp.Content = new StringContent(jsonRes);
       resp.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

       return resp;
}

这是我得到的回复:

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StringContent, Headers:
{
  Content-Type: text/plain
}

jsonRes var包含有效的JSON 为什么内容下载为内容:System.Net.Http.StringContent

我可能在这里错过了一些小事。

2 个答案:

答案 0 :(得分:6)

你可以这样做:

  public string Post()
    {
           var response = GetModel();
           string jsonRes = JsonConvert.SerializeObject(response);


           return jsonRes ;
    }

答案 1 :(得分:2)

最初的问题有点陈旧,但我今天遇到了同样的问题,所以也许其他人会寻找解决方案。这对我有用:

public HttpResponseMessage Post()
{
   var response = GetModel();
   string jsonRes = JsonConvert.SerializeObject(response);

   var resp = new HttpResponseMessage();
   resp.Content = new StringContent(jsonRes, System.Text.Encoding.UTF8, "application/json");

   return resp;
}

所以你提到的“小东西”是StringContent构造函数中的mediaType参数:

public StringContent (string content, System.Text.Encoding encoding, string mediaType);