Web API Get 中
public string Get() { return "itpow"; }
网页上呈现的不是 itpow,而是:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">itpow</string>
我们再测试返回一个对象:
public MyClass Get() { return new MyClass(); } public class MyClass { public string Name { get; set; } = "itpow"; }
得到结果是这样的:
<MyController.MyClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApi.Api.Controllers"> <Name>itpow</Name> </MyController.MyClass>
仍然是通过 XML 格式输出的。
能不能自己指定呢?我们继续看。
如何输出字符串呢?
public HttpResponseMessage Get() { HttpResponseMessage responseMessage = new HttpResponseMessage(); responseMessage.Content = new StringContent("itpow"); responseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/plain"); return responseMessage; }
如何输出 XML 呢?
这里指我们指定格式的 XML。
public HttpResponseMessage Get() { HttpResponseMessage responseMessage = new HttpResponseMessage(); responseMessage.Content = new StringContent("<root><name>itpow</name></root>"); responseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/xml"); return responseMessage; }
如何输出 JSON 呢?
public HttpResponseMessage Get() { HttpResponseMessage responseMessage = new HttpResponseMessage(); responseMessage.Content = new StringContent(@"{ ""name"": ""itpow"" }"); responseMessage.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/json"); return responseMessage; }
Web API Post 中
在 Post 中,我们输出字符串,不论这个字符串是什么格式,都会使用引号给我们引起来,比如我们想输出 itpow,但是实际输出的是 "itpow",有 7 个字符。如果其中有换行,还使用 \r\n 替换。
也就是说,Post 时,是使用 JSON 格式输出的。
如何输出字符串呢?
跟前面的 Get 一样。
如何输出 XML 呢?
跟前面的 Get 一样。
如何输出 JSON 呢?
简单,直接返回类。
public MyClass Post() { return new MyClass(); } public class MyClass { public string Name { get; set; } = "itpow"; }
总结
Post 要输出 JSON,直接返回类。
其他,自行指定内容和格式。
相关阅读