【发布时间】:2014-05-30 23:48:02
【问题描述】:
我有一个 ASP.NET Web API 正在运行,并且有一个客户端遇到以下问题:
{"model":["Unable to translate bytes [E9]
at index 300 from specified code page to Unicode."]}
在模型绑定期间似乎发生了异常,这是我默认的无自定义。
客户端也在运行 .NET,他们说内容是以UTF16....发送的,但他们不包括 HTTP 标头来表明这一点。直到他们开始在内容中使用特殊字符之前,一切都很好。
我的问题是如何处理这个问题。最初我打算添加一个DelegateHandler,它会检测到这个客户端并以某种方式将内容类型/字符集设置为UTF16,但这并没有成功。然后我想我可以从 DelegateHandler 中将请求正文转码为UTF8,但我读到无法或不推荐在处理程序中修改内容。
由于问题出现在模型绑定期间,我想知道是否可以按顺序实现自定义模型绑定器?
感谢您的帮助!
【问题讨论】:
-
...我还应该声明客户端此时无法添加标头,因为他们已经投入生产并且遇到了这个问题。
标签: c# asp.net asp.net-web-api