1

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

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

响应由以下方式返回:

urllib2.urlopen(request, timeout=timeout)

所以它是类型

httplib.HTTPResponse

httplib.HTTPResponse.read()

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

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中的一个错误,但是......也许是我不明白的事情。感谢您的时间!

4

1 回答 1

1

我不认为read()需要一个 kwarg,只需尝试将文件大小作为整数传递?

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

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

于 2012-04-06T14:22:53.533 回答