为什么有人会使用multipart / form-data进行混合数据和文件传输?
我正在使用C#,正在编写的2个应用程序之间进行一些通信。我开始喜欢Web API和JSON。现在,我正在编写例程以在两个服务器之间发送包含一些文本数据和文件的记录。 根据互联网,我应该使用multipart / form-data请求,如下所示: SO问题“来自C#客户端的多部分表单” 基本上,您手动编写一个遵循如下格式的请求: Content-type: multipart/form-data, boundary=AaB03x --AaB03x content-disposition: form-data; name="field1" Joe Blow --AaB03x content-disposition: form-data; name="pics"; filename="file1.txt" Content-Type: text/plain ... contents of file1.txt ... --AaB03x-- 从RFC 1867复制-HTML中基于表单的文件上传 这种格式对于习惯于使用JSON数据的人来说非常令人不快。因此,很明显,解决方案是创建一个JSON请求,并对文件进行Base64编码,并最终得到如下请求: { "field1":"Joe Blow", "fileImage":"JVBERi0xLjUKJe..." } 我们可以在任何需要的地方使用JSON序列化和反序列化。最重要的是,发送此数据的代码非常简单。您只需为JSON序列化创建类,然后设置属性即可。文件字符串属性的设置很简单: using (FileStream fs = File.Open(file_path, FileMode.Open, FileAccess.Read, FileShare.Read)) { byte[] file_bytes = …