1

python3.x 用に実稼働で使用するカスタム HTTP クライアントがあります。ここで、python2.7 に対して同じ機能を実行する必要があります。私は1つのステートメントにのみ問題があります:

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()ファイルサイズを整数として渡してみてください。

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

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

于 2012-04-06T14:22:53.533 に答える