繁体   English   中英

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

[英]returning a text\plain json response from a web api post

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

这是我的服务器代码:

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

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

你可以这样做:

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


           return jsonRes ;
    }

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

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM