如何使用httplib(python 2.6)处理超时?

我正在使用httplib通过https访问api,并且需要在api关闭的情况下构建异常处理.

这是一个示例连接:

connection = httplib.HTTPSConnection('non-existent-api.com', timeout=1)
connection.request('POST', '/request.api', xml, headers={'Content-Type': 'text/xml'})
response = connection.getresponse()

这应该超时,所以我期待引发异常,而response.read()只返回一个空字符串.

我怎么知道是否有超时?更好的是,优雅地处理第三方api问题的最佳方法是什么?

最佳答案
urllib和httplib不会暴露超时.您必须包含套接字并在那里设置超时:

import socket
socket.settimeout(10) # or whatever timeout you want

转载注明原文:如何使用httplib(python 2.6)处理超时? - 代码日志