我们可以在http标头webapi中存储一个Complext对象

时间:2015-07-02 16:00:36

标签: c# asp.net-web-api asp.net-web-api2

我有一个像下面这样的复杂对象,我需要客户端在header对象中发送它,这是否可以在webapi中或者这些属性是否应该作为名称值对发送?

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

1 个答案:

答案 0 :(得分:1)

HTTP是基于文本的协议,因此您发送的所有内容都必须以某种方式序列化为文本。 WebAPI没有为标题的序列化/反序列化提供任何直接帮助。

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

注意:

  • 通常一个人发送参数作为POST请求的主体而不是头部。标题通常用于身份验证等辅助信息。
  • 取决于处理标题的语言在客户端可能会更加困难。大多数库都提供了将参数作为GET / POST传递的方法,但是找不到一个用于在头文件中传递参数的方法。