【问题标题】:returning a text\plain json response from a web api post从 web api 帖子返回 text\plain json 响应
【发布时间】:2014-07-21 09:43:35
【问题描述】:

我在从 WebApi 返回“文本/纯文本”json 响应时遇到问题。
我需要以text/plain 的形式返回它,默认情况下它以应用程序/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 变量包含一个有效的 JSON。
为什么下载的内容为 Content:System.Net.Http.StringContent

我可能在这里遗漏了一些小东西。

【问题讨论】:

  • 您返回的是 HttpResponseMessage 类型的对象,而不是为实际内容类型设置任何变量。
  • 你怎么称呼这个API? $.ajax (jQuery) 有一个数据类型来设置返回的好类型。
  • @Erti-ChrisEelmaa 这不是重复的。我已经阅读了 20 篇文章,但仍然有问题。
  • @SamiKuhmonen - 我正在设置内容类型,如您在此处看到的:resp.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");

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


【解决方案1】:

你可以这样做:

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


           return jsonRes ;
    }

【讨论】:

  • 哇..甚至没有想到,因为网络上的所有帖子都贴在 HttpResponseMessage 上。那完成了工作..谢谢!
【解决方案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);

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多