第三方应用开发 服务端API 数据分析专区 专区接口 下载消息素材
下载消息素材
最后更新:2024/01/11
可联系渠道经理采购或代理智慧硬件接口已支持设备 联系渠道经理
下载消息素材
最后更新:2024/01/11

请求方式: GET(HTTPS
请求地址: https://specapi.weixin.qq.com/spec/download_media?access_token=ACCESS_TOKEN&media_id=MEDIA_ID

参数说明:

参数必须说明
access_token数据分析专区专用接口凭证
media_id素材ID

 

权限说明:

  • 需要使用pod专用access_token

请求回包
和普通的http下载相同,请根据http头做相应的处理:

   HTTP/1.1 200 OK
   Connection: close
   Content-Type: image/png 
   Content-disposition: attachment; filename="qrcode.png"
   Date: Sun, 06 Jan 2013 10:20:18 GMT
   Cache-Control: no-cache, must-revalidate
   Content-Length: 339721
   
   Xxxx

错误时返回错误码(这里省略了HTTP首部):

{
	"errcode":40007,
	"errmsg":"invalid media_id"
}

参数说明:

参数类型说明
errcodeint错误码
errmsgstring错误描述

附注:支持断点下载(分块下载)

本接口支持通过在http header里指定 Range 来分块下载。
在文件很大,可能下载超时的情况下,推荐使用分块下载。
以curl命令进行测试为例,假如我有一个2048字节的文件,
下面是获取文件前1024字节:

curl 'https://qyapi.weixin.qq.com/cgi-bin/specapi/download_media?access_token=ACCESS_TOKEN&media_id=MEDIA_ID' -i -H "Range: bytes=0-1023"

生成如下http请求:

GET /cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID HTTP/1.1
Host: qyapi.weixin.qq.com
Range: bytes 0-1023

服务器端会返回状态码为 206 Partial Content 的响应:

HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Range: bytes 0-1023/2048
Content-Length: 1024
...
(1024 Bites binary content)

可以看到响应中有如下特点:

 

  • 状态码是 206 Partial Content ,而非 200 ok
  • 返回的header中, Accept-Ranges 首部表示可用于定义范围的单位
  • 返回的header中, Content-Range 首部表示这一部分内容在整个资源中所处的位置

 

更多协议详情参考RFC: Range Requests

上一篇
拉取消息
下一篇
连接微信