RESTful POST without Content-Type

本文关键字:Content-Type without POST RESTful | 更新日期: 2023-09-27 17:53:55

是否有可能让web服务接受json格式的请求而没有内容类型的标头?

当我传递Content-type: application/json报头时,POST动词工作得很好。如果没有设置,则会抛出一个400错误。我在这里问了很多问题,问他们为什么得到400分,答案是内容类型。那么,是否有可能在服务器端代表用户"填写"呢?

RESTful POST without Content-Type

如果没有某种内容头告诉它如何解释请求,那么默认的。net webstack是不可能做到这一点的。如果您想了解ASP的内部。. NET栈(你可以使用一个反射器应用程序,如ILSpy),你可能会找到一个拦截点,但你很可能不得不做一些自定义的IIS集成,让模块拦截请求,甚至可能在ASP。涉及到。NET栈。

对于大多数人来说,让JSON请求应用程序引入标头要容易得多。

另外,我鼓励你开始学习如何使用Reflector来探索这些堆栈是如何工作的,它们确实是复杂的、庞大的和相当可扩展的,以工程成本为代价(目前粗略的猜测,一个没有经验的IIS开发人员将需要大约50个小时来设计这项技术,如果它可以整洁地完成的话)。

您使用的是WebAPI还是ASP ?净MVC吗?我有一个解决办法,虽然有些人可能会对我大喊大叫。

  • 您可以创建一个属性,该属性试图将请求的主体反序列化为您正在寻找的特定操作的对象。如果它可以工作,那么您可以使用RequestContext将其传递给参数列表。我不确定你需要设置的确切属性是什么,但我记得在ASP中做过非常类似的事情。净MVC。

希望对你有帮助。

注:使用JSON。Net,它有很多有用的反序列化方法,这将使这变得轻而易举。