前言:
这几天在用WebApi做微信小程序后台的时候,遇到了一个困扰了一天的东西。就是我用webapi返回的数据在Google浏览器下都是以类似XML格式返回的,返回的数据无缘无故多了个下面的这样的东西,并且返回数据也不是Json格式的在数据两端多个双引号,并且中间多了许多反斜杠。并且在不同的浏览器下返回的还不一样,IE浏览器里没有类似XML的标签,但是数据一样不正确(返回的数据展示的不一样我也查询资料了,说的是和浏览器本身相关--对于这个问题我也没深究)。
接着向下说:
这是Google浏览器返回的数据,返回的数据多了个反斜杠,外面也多了个类似XML的东西
(返回类似XML的解决方法大家可以看下我的另一篇博客)
链接:https://blog.csdn.net/GreyCastle/article/details/90298597
这是IE浏览器返回的数据(没有类似XML包括,但是里面还是有反斜杠的东西)
解决办法:
需要注意的是,你调用方法后,你自己定义的方法的返回类型必须是HttpResponseMessage类型,否则返回的数据就不是你的数据了,而是默认的HttpResponseMessage这个类中的一些属性,比如Version属性。
GetJson方法:
/// <summary>
/// 将webapi中多出的双引号和转义字符(反斜杠),转换为json返回
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
public static HttpResponseMessage GetJson(string json)
{
var resp = new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") };
return resp;
}
展示效果:返回的确实是Json格式反斜杠也没有了,双引号也去掉了
关于Goole返回的是XML格式的大家可以看下我的另一篇博客,主要是标题太长了,就没写一块。嘻嘻!
链接:https://blog.csdn.net/GreyCastle/article/details/90298597
结尾:
分享:必须从过去的错误学习教训而非依赖过去的成功。