哪种Web请求方法接收大文件的Web API

时间:2016-08-09 12:40:39

标签: http specifications http-get

哪个http request method适合接收大文件?

我的用例:我想提供HTTP API:

  • 输入:mp3文件。整个文件(不仅仅是文件名)
  • 输出:唱这首歌的可能的音乐翻译列表。

由于服务器上没有修改数据,我认为POSTPUT不合适。

AFAIK方法GET不合适:

  • mp3文件对于查询字符串来说太大了。
  • GET请求包含正文中的数据对我来说是新的。

接收大文件的Web API的哪种http请求方法?

更新

  • 这是上传。 mp3是输入,有些文本是输出。

UPDATE2

想象一下,您想为calculate_square_root()提供HTTP API。如果您输入9,则会收到3。你会用“#34;上传"数字为9?在普通GET和大GET之间画一条线?

3 个答案:

答案 0 :(得分:1)

要将文件内容发送到服务器,您应该使用POST请求:

  

4.3.3. POST

     

POST方法请求目标资源处理     根据资源包含在请求中的表示     拥有特定的语义。例如,POST用于以下内容     功能(等等):

     
      
  • 提供数据块,例如输入HTML的字段    形式,数据处理过程;   [...]
  •   

文件内容将在请求的有效内容中发送,请求的Content-Type应设置为multipart/form-data

答案 1 :(得分:1)

对于发送文件内容等大数据,您应该使用POST请求。

对于在服务器端上传文件,请求的“Content-Type”应为multipart / form-data。

答案 2 :(得分:1)

引用RFC:HTTP 1.1 Method Definitions 这似乎是一个POST。

  

POST方法执行的实际功能由服务器确定......

     

POST方法执行的操作可能不会产生可由URI标识的资源。 ...

     

如果已在源服务器上创建资源,...

最后两点似乎明确支持服务器只能处理数据而不存储任何内容的想法