请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
参数说明 :
20M
需使用Range
分块下载,且分块大小不超过20M
,否则返回错误码830002
830002
,需使用Range
分块下载,建议分块大小不超过20M
权限说明:
完全公开,media_id在同一企业内所有应用之间可以共享。
media_id有效期只有3天,注意要及时获取,以免过期。
返回说明 :
正确时返回(和普通的http下载相同,请根据http头做相应的处理):
HTTP/1.1 200 OK
Connection: close
Content-Type: image/jpeg
Content-disposition: attachment; filename="MEDIA_ID.jpg"
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"
}
本接口支持通过在http header里指定Range
来分块下载。
在文件很大,可能下载超时的情况下,推荐使用分块下载。
以curl命令进行测试为例,假如我有一个2048字节的文件,
下面是获取文件前1024字节:
curl 'https://qyapi.weixin.qq.com/cgi-bin/media/get?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
Accept-Ranges
首部表示可用于定义范围的单位Content-Range
首部表示这一部分内容在整个资源中所处的位置更多协议详情参考RFC: Range Requests