c# - 如何通过 REST API 发送文件?

标签 c# .net api rest file-upload

我正在尝试通过 REST API 将文件发送到服务器。该文件可能是任何类型的,但它的大小和类型可能会受到限制,只能作为电子邮件附件发送。

我认为我的方法是将文件作为二进制流发送,然后在文件到达服务器时将其保存回文件中。在 .Net 中是否有内置的方法来执行此操作,或者我是否需要手动将文件内容转换为数据流并发送?

为清楚起见,我可以控制客户端和服务器代码,因此我不局限于任何特定方法。

最佳答案

我建议您查看 RestSharp
http://restsharp.org/

RestSharp 库具有将文件发布到 REST 服务的方法。 (RestRequst.AddFile())。我相信在服务器端,这将转换为编码字符串到正文中, header 中的内容类型指定文件类型。

我还看到它是通过将流转换为 base-64 字符串并将其作为序列化 json/xml 对象的属性之一进行传输来完成的。特别是如果您可以设置大小限制并希望将文件元数据作为同一对象的一部分包含在请求中,则效果非常好。

不过,这实际上取决于您的文件有多大。如果它们非常大,您需要考虑流式传输,其中的细微差别在这篇 SO 帖子中非常详尽:How do streaming resources fit within the RESTful paradigm?

关于c# - 如何通过 REST API 发送文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34319043/

相关文章:

c# - Mongodb c# 驱动程序-将 Id 复制到插入时的另一个字段

asp.net - 将预加密的配置文件部署到生产环境

arrays - 在 Angular 上执行 GET 请求时出现此错误 : Cannot find a differ supporting object '[object Object]

iphone - Apple API 歌曲 "previewUrl"持久性

c# - 下面哪个版本的代码是正确的?

c# - 将参数从一个 winform 应用程序发送到另一个应用程序并填充文本框

c# - 使用 Linq 基于逗号分隔的属性值拆分 List<T>

api - 如何调试音频节点连接?

c# - 异步总是 WaitingForActivation

c# - 水平列表框无法滚动 Windows Phone 8.1 WP8.1