当远程代理关闭时,urllib仍会读取代理

时间:2014-12-05 15:10:00

标签: python proxy urllib python-3.4

在一个小型测试项目中,我尝试测试远程代理服务器。我们有一个客户端在与代理服务器通信的本地计算机上运行。我已经设置了我的python代码,就像这样谈论客户端:

proxy_handler = urllib.request.ProxyHandler({'http': 'http://localhost:' + self.proxy_port})
opener = urllib.request.build_opener(proxy_handler)
urllib.request.install_opener(opener)

然后我有代码打开url并一次读取N个字节:

try:
    video_stream = urllib.request.urlopen(self.url, timeout=10)

    while something_is_true:
        data = video_stream.read(bucket_size)

except URLError:
    # handle errors
except Exception:
    # handle errors

我遇到的问题是我可以开始测试并让它运行几分钟。在此期间,我可以关闭远程代理,代码继续从video_stream连接读取。没有例外被抛出。

如果我从一开始就关闭了远程代理的代码,那么urlopen()就失败了,这是我所期待的。但是如果我在运行期间停止远程代理,我也会期望read()失败。

0 个答案:

没有答案