我试图通过REST API将文件发送到服务器.该文件可能是任何类型的,但它的大小和类型可以限制为可以作为电子邮件附件发送的内容.
我认为我的方法是将文件作为二进制流发送,然后在它到达服务器时将其保存回文件中.是否有内置的方法在.Net中执行此操作,还是需要手动将文件内容转换为数据流并发送?
为清楚起见,我可以控制客户端和服务器代码,因此我不限于任何特定方法.
我建议你看看RestSharp
http://restsharp.org/
RestSharp库具有将文件发布到REST服务的方法.(RestRequst.AddFile()
).我相信在服务器端,这将转换为正文中的编码字符串,标题中的content-type指定文件类型.
我也看到它通过将流转换为base-64字符串,并将其作为序列化json/xml对象的属性之一进行传输.特别是如果您可以设置大小限制并希望在请求中包含文件元数据作为同一对象的一部分,这非常有效.
这实际上取决于你的文件有多大.如果它们非常大,你需要考虑流式传输,其中的细微差别在这个SO帖子中非常详尽:流式传输资源如何适应RESTful范式?