使用Python下载文件只会产生4.1kB的内存

使用Python下载文件只会产生4.1kB的内存,python,asp.net-mvc,Python,Asp.net Mvc,我使用的是简单的代码: import urllib2 response = urllib2.urlopen("http://www.mysite.com/getfile/4355") output = open('myfile.zip','wb') output.write(response.read()) output.close() web服务器是IIS+ASP.NET MVC 4 它返回FileResult,该结果包装一个内容类型为“application/octet stream”的z

我使用的是简单的代码:

import urllib2
response = urllib2.urlopen("http://www.mysite.com/getfile/4355")
output = open('myfile.zip','wb')
output.write(response.read())
output.close()
web服务器是IIS+ASP.NET MVC 4 它返回FileResult,该结果包装一个内容类型为“application/octet stream”的zip文件

问题是下载的zip文件被破坏了-只有4.1kB大小,其中必须是24kB。当我直接在web浏览器中键入url地址时,它可以正常下载和打开

你能告诉我,我的Python代码有什么问题吗

编辑

尝试了另外两种方法-相同的结果

    import urllib
    urllib.urlretrieve(url, targetFile)

    h = httplib2.Http(".cache")
    response, content = h.request(url)
    with open(targetFile, 'wb') as f:
        f.write(content)

看看python的“请求”模块。你可以安装它。示例代码为:

>>>import requests
>>>req_obj = requests.get("http://www.myexample.com/myfile.zip")
>>>print len(req_obj)
203456

有关API的更多信息,请参见…

在py3k中,您只需使用
urllib.request.urlretrieve(url,文件名)
即可下载以下文件:

import urllib.request

url = 'http://www.example.com/the-file.zip'
urllib.request.urlretrieve(url, 'filename.zip')

这是一个愚蠢的问题,但无论如何:我的控制器上有[Authorize]属性,这样就不能执行匿名请求

删除它只允许我下载文件

无论如何,谢谢你