我有一个自定义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,但是...也许是我不明白的东西。谢谢你的时间!
答案 0 :(得分:1)
我不认为read()
需要一个kwarg,只是尝试将filesize传递为整数?
data = response.read(10 *1024 *1024)