httplib.BadStatusLine错误(与Dropbox Python SDK一起使用)

时间:2012-06-15 07:18:40

标签: python http dropbox-api

我尝试使用put_file上传文件时获得此回溯(示例https://www.dropbox.com/developers/start/files#python中的源代码)。这个错误是什么意思?什么是处理它的合适方式?

Traceback (most recent call last):
  File "testDRBX.py", line 30, in <module>
    response = client.put_file('magnum-opus.txt', f)
  File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\cli
ent.py", line 149, in put_file
    return RESTClient.PUT(url, file_obj, headers)
  File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\res
t.py", line 146, in PUT
    return cls.request("PUT", url, body=body, headers=headers, raw_response=raw_
response)
  File "C:\Users\hicom\AppData\Roaming\Python\Python27\site-packages\dropbox\res
t.py", line 111, in request
    r = conn.getresponse()
  File "C:\Python27\lib\httplib.py", line 1027, in getresponse
    response.begin()
  File "C:\Python27\lib\httplib.py", line 407, in begin
    version, status, reason = self._read_status()
  File "C:\Python27\lib\httplib.py", line 371, in _read_status
    raise BadStatusLine(line)
httplib.BadStatusLine: ''

3 个答案:

答案 0 :(得分:1)

问题出在HTTP标头的USER-AGENT中。它默认为'OfficialDropboxPythonSDK / 1.4'。我在rest.py(第55行)中将其更改为任何其他,'Mozilla / 5.0(Windows; U; Windows NT 5.1;它; rv:1.8.1.11)Gecko / 20071127 Firefox / 2.0.0.11'。 Ploblem解决了。

答案 1 :(得分:0)

BadStatusLine表示您的脚本与Dropbox服务器之间的连接丢失,可能是由于超时。我想,你需要更快地完成整个过程。

https://forums.dropbox.com/topic.php?id=34037#post-297553

答案 2 :(得分:0)

如果您过快地运行请求并且Dropbox的服务器速率限制您,Dropbox API也会导致BadStatusLine。

我的开发机器没有足够快的速度来触发这个,但是当快速连续运行140个请求(列表理解)时,Amazon EC2实例能够触发这种情况。

我认为这不是你的情况,但我想为其他遇到此问题的人注意这一点。