深圳网站关键词,怎样提高网站速度,网站标题seo外包优化,运城网站推广哪家好void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型#xff0c; 可以参考博文http://blog.csdn.net/leonken88/article/details/53063693 和大神的http://www.cnblogs.com/landeanfen/p/5501487.html 我要说我遇到的坑是#xff0c; p…void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型 可以参考博文http://blog.csdn.net/leonken88/article/details/53063693 和大神的http://www.cnblogs.com/landeanfen/p/5501487.html 我要说我遇到的坑是 public HttpResponseMessage DataHandler(RequestModel model) { 不管是result JsonConvert.SerializeObject(data); return result, return jsonstring(result), 或者return Ok(result) 别人调用我的接口都是一个json字符串格式”{\“name\”:\”123\”}” } 以我想呢既然你能收到这种字符串自己反序列化下就ok了嘛最后另外那边告诉我他们的开发语言是c且这个http请求都是封装好的组件类似dll那种只能调用他们要求返回json必须是{“name”:”123”}无转义无双引号 这可难办我试了好多种方式每次都是返回带转义字符的json字符串无奈多方查阅 [HttpPost]public HttpResponseMessage DataHandler(RequestModel model){ string result”{\“name\”:\”123\”}”; return new HttpResponseMessage { Content new StringContent(result, System.Text.Encoding.UTF8, text/plain) }; } 这就对了为什么呢 原来是自己对http协议的学习不精 1、 服务端需要返回一段普通文本给客户端Content-Typetext/plain2 、服务端需要返回一段HTML代码给客户端 Content-Typetext/html3 、服务端需要返回一段XML代码给客户端 Content-Typetext/xml4 、服务端需要返回一段javascript代码给客户端text/javascript5 、服务端需要返回一段json串给客户端application/Json 且 ASP.NET WebAPI是一套RESTful API开发框架。会自动序列化返回的对象成XML或JSON,其序列化后的格式取决于Request的header中的Accept。常见的有 application/jsonapplication/xmltext/jsontext/xml(这两种已经被废弃了 如果不指定的话默认返回的Content-Type是application/json; charsetutf-8 要想http response 返回指定格式 方法一放弃自动序列化返回httpResponseMessage再手动设置 代码如下 HttpResponseMessage resp new HttpResponseMessage(); string result”{\“name\”:\”123\”}”; resp.Content new StringContent(result, System.Text.Encoding.UTF8, text/plain); 方法二设置httpConfiguration 但是这种方法有个弊端是全局的但是应该可以限定范围暂时先不管了。 P.S.吐槽下IE默认是不显示JSON的会直接下载下来所以开发人员工具就捕获不到HTTP报文也没法看Header。 更多详情请参考http://www.luckyonecn.com/blog/fix_content-type_to_Applicationjson_in_WebApi/ 【知识点】http请求不仅仅request中的content-type需要指定response中的content-type也需要指定客户端需要告诉服务端我给你的是什么样的数据content-type服务端处理逻辑返回给客户端也需要告诉客户端我给你是什么样的数据content-type双方按约定好的方式进行通讯才能确保整个http请求准确无误的进行。 转载于:https://www.cnblogs.com/RandyField/p/7145796.html