httplib.HTTPResponse.read()意外关键字参数'amt'

时间:2012-04-06 13:55:38

标签: python

我有一个自定义HTTP客户端,我在python3.x的生产中使用。 现在我需要为python2.7完成相同的功能。 我只有一个陈述有问题:

data = response.read(amt = 10 *1024 *1024)

返回响应的地方:

urllib2.urlopen(request, timeout=timeout)

所以它的类型为

httplib.HTTPResponse

httplib.HTTPResponse.read()

支持amt作为python2.7下的长度的可选参数。我仍然得到错误:

Traceback (most recent call last):
   File "D:\eclipse_workspace\py27\wsdconfirmationserver.py", line 152, in <module>
print(customHttpRequest(url="http://test.com/"))
   File "D:\eclipse_workspace\py27\wsdconfirmationserver.py", line 109, in customHttpRequest
   data = response.read(amt = 10 *1024 *1024)                                   
TypeError: read() got an unexpected keyword argument 'amt'

现在有趣的是,如果我在httplib.HTTPResponse的源代码中重命名read(),这个函数不会再失败,但显然我在代码中引入了无数的其他问题。 我徘徊为什么会发生这种情况......看起来像是python中的一个bug,但是...也许是我不明白的东西。谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

我不认为read()需要一个kwarg,只是尝试将filesize传递为整数?

data = response.read(10 *1024 *1024) 

http://docs.python.org/library/stdtypes.html#file.read