asp.net – 带有transfer-enconding的POST:在IIS 8.5 Web API中
发布时间:2020-12-16 09:43:42 所属栏目:asp.Net 来源:网络整理
导读:我在IIS 8.5上运行ASP.NET Web API,我的POST方法接受json文档的主体.现在,客户端应用程序正在使用apache httpclient,它显然会自动将Transfer-Encoding:chunked标头添加到请求中.我的API方法因为不存在的主体而引发异常 – 它不能反序列化正文中的json,即使
我在IIS 8.5上运行ASP.NET Web API,我的POST方法接受json文档的主体.现在,客户端应用程序正在使用apache httpclient,它显然会自动将Transfer-Encoding:chunked标头添加到请求中.我的API方法因为不存在的主体而引发异常 – 它不能反序列化正文中的json,即使它在客户端日志中看起来很好.
我应该如何处理确保获得全身的请求?我想IIS也应该支持请求的传输编码,因为它是HTTP / 1.1规范的一部分,对吧? 有一个类似的问题没有答案:Reading Body on chunked transfer encoded http requests in ASP.NET 解决方法
您必须基本上检查ContentLength标头并将其设置为null(如果它为0).
public class ChunkJsonMediaTypeFormatter : JsonMediaTypeFormatter { public override Task<object> ReadFromStreamAsync(Type type,Stream readStream,HttpContent content,IFormatterLogger formatterLogger) { content.Headers.ContentLength = (content.Headers.ContentLength == 0) ? null : content.Headers.ContentLength; return base.ReadFromStreamAsync(type,readStream,content,formatterLogger); } } 连接这个格式化程序 GlobalConfiguration.Configure(config => { var jsonFormatter = new ChunkJsonMediaTypeFormatter() { SerializerSettings = config.Formatters.JsonFormatter.SerializerSettings }; config.Formatters.Remove(config.Formatters.JsonFormatter); config.Formatters.Insert(0,jsonFormatter); } https://gist.github.com/jayoungers/0b39b66c49bf974ba73d83943c4b218b (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .NET Core的文件系统[3]:由PhysicalFileProvider构建的物理
- asp.net – 超过了JavaScriptSerializer.MaxJsonLength.处理
- asp.net – 为什么我应该选择Crystal Report或SSRS而不是纯
- asp.net – 什么设置的User.Identity.Name和User.Identity.
- asp.net – 如何使用MVC 4和View Models(强类型)渲染一组复
- asp.net – 在Azure网站上启用gzip压缩
- asp.net-mvc-2 – 在Visual Studio 2010 RC中更改默认浏览器
- asp.net-mvc – 找不到CrystalImageHandler.aspx
- asp.net-mvc – 将一个类对象从一个控制器动作传递到ASP.ne
- asp.net core 运用 Redis 配置步骤
推荐文章
站长推荐
- asp.net-mvc – 接受逗号和点作为小数分隔符
- asp.net – 我可以使用Chrome DevTools在客户端查
- asp.net-mvc-4 – .NET Web API Post Action返回
- 如何将数组从Asp.net服务器端传递到客户端的Java
- asp.net-mvc – ASP.NET MVC会话过期
- asp.net – 如何在volusion中编辑产品详细信息页
- asp.net-mvc – 如何锁定ASP.NET MVC中的路径?
- 带有声明性数据的Eval绑定ASP.NET
- One to One 的数据库模型设计与NHibernate配置
- asp.net-mvc – 如何将ViewData传递给HandleErro
热点阅读