我在从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
?
我可能在这里错过了一些小事。
答案 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);