我正在使用Microsoft Web API 2和Protobuf-net来序列化我的数据。一切都运行得很好,除非我想将二进制数据发送到Web API控制器。我最终得到500错误。
目前是否可以或仅限于序列化?为了验证我的响应是否正确,我使用了ProtobufJS并对其进行了正确解码。为了查明我的问题,我将其排除在外,并在收到后直接发送了我的回复。任何帮助设置将不胜感激。
Web API控制器
public class UserController : ApiController
{
// GET api/<controller>
public User Get()
{
var user = new User{ Id = "ABC1", FirstName = "John", LastName = "Doe" };
return user;
}
// GET api/user/
public void Post(User user)
{
var type = "POST";
}
}
模型
[ProtoContract]
public class User
{
[ProtoMember(1)]
public string Id { get; set; }
[ProtoMember(2)]
public string FirstName { get; set; }
[ProtoMember(3)]
public string LastName { get; set; }
}
的Javascript
<script>
var get = new XMLHttpRequest();
get.open("GET", "api/user", true);
get.responseType = "arraybuffer";
get.setRequestHeader("Accept", "application/x-protobuf");
get.onload = function (event) {
var arrayBuffer = get.response;
var post = new XMLHttpRequest();
post.open("POST", "api/user", true);
post.setRequestHeader("Accept", "application/x-protobuf");
post.overrideMimeType("application/x-protobuf");
post.send(arrayBuffer);
}
get.send(null);
</script>