Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从web api post返回文本\plain json响应_C#_Json_Asp.net Web Api - Fatal编程技术网

C# 从web api post返回文本\plain json响应

C# 从web api post返回文本\plain json响应,c#,json,asp.net-web-api,C#,Json,Asp.net Web Api,我在从WebApi返回“文本/普通”json响应时遇到问题。 我需要将其返回为text/plain,默认情况下,它返回为application/json。 我遇到的问题就是这件事到底发生了什么。 这不是一篇重复的文章,因为我读过多篇文章,但仍然有一个小问题 这是我的服务器代码: public HttpResponseMessage Post() { var response = GetModel(); string jsonRes = JsonConvert.Seri

我在从WebApi返回“文本/普通”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变量包含有效的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);

返回类型为
HttpResponseMessage
的对象时,没有为实际内容类型设置任何变量。您如何调用此API?$。ajax(jQuery)有一个数据类型来设置要返回的正确类型。@Erti ChrisEelmaa这不是重复的。我已经读了20篇文章,但仍然有一个问题。@SamiKuhmonen-我正在设置内容类型,正如您在这里看到的:resp.content.Headers.ContentType=new MediaTypeHeaderValue(“text/plain”);哇..我甚至没想到,因为网上所有的帖子都贴上了HttpResponseMessage。做得很好,谢谢!