通过Range
标头bytes=start_offset- end_offset
作为范围说明符。
例如,以下代码检索前300个字节。(0-299
):
>>> import httplib
>>> conn = httplib.httpconnection('localhost')
>>> conn.request("GET", '/', headers={'Range': 'bytes=0-299'}) # <----
>>> resp = conn.getresponse()
>>> resp.status
206
>>> resp.status == httplib.PARTIAL_CONTENT
True
>>> resp.getheader('content-range')
'bytes 0-299/612'
>>> content = resp.read()
>>> len(content)
300
这两个start_offset
,end_offset
都包括在内。
如果服务器不理解Range
标题,它将以状态码200(httplib.OK
)而不是206(httplib.PARTIAL_CONTENT
)进行响应,并将发送整个内容。要确保服务器响应部分内容,请检查状态码。
>>> resp.status == httplib.PARTIAL_CONTENT
True