我们可以在 http headers webapi 中存储一个复杂的 object

can we store a complext object in http headers webapi

我有一个复杂的 object,如下所示,我需要客户端在 headers object 中发送这个,这在 webapi 中是否可行,或者这些属性是否应该作为名称发送值对 ??

class Employee
{
string firstname;
string lastname;
List<String> Courses;
}

HTTP 是 text-based 协议,因此您发送的所有内容都必须以某种方式序列化为文本。 WebAPI 不为 headers.

的 serializing/de-serializing 值提供任何直接帮助

您可以创建自定义模型绑定器(起点 - Parameter Binding in ASP.NET Web API)以从 headers 中读取值。您仍然需要在客户端手动序列化它(即作为二进制序列化数据的 Base64 字符串)。

备注:

  • 通常一个人发送参数作为 POST 请求的 body 而不是 headers。 Headers 一般用于身份验证等辅助信息。
  • 取决于处理 headers 的语言,在客户端可能要困难得多。大多数库将提供以 GET/POST 形式传递参数的方法,但不太可能找到一种以 headers 形式传递参数的方法。