擅长:python、mysql、java
<p>你的代码片段很接近。有两点值得注意:</p>
<ol>
<li><p>如果您正在使用<code>resp.data</code>,它将消耗整个响应并返回连接(您不需要手动<code>resp.release_conn()</code>)。如果你能很好地将数据保存在内存中,这是很好的。</p></li>
<li><p>您可以使用<code>resp.read(amt)</code>来传输响应,但是需要通过<code>resp.release_conn()</code>返回连接。</p></li>
</ol>
<p>这看起来像。。。</p>
<pre><code>import urllib3
http = urllib3.PoolManager()
r = http.request('GET', url, preload_content=False)
with open(path, 'wb') as out:
while True:
data = r.read(chunk_size)
if not data:
break
out.write(data)
r.release_conn()
</code></pre>
<p>在这种情况下,文档可能有点缺乏。如果有人对制作<a href="https://github.com/shazow/urllib3" rel="noreferrer">pull-request to improve the urllib3 documentation</a>感兴趣,将不胜感激。:)</p>