久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python - Requests 如何中斷請求?

瀏覽:144日期:2022-07-15 09:36:32

問題描述

python中的requests如何中斷請求呢? 我是多線程并發去get,但是沒找到停止請求操作,只能wait線程結束,我以前用過socket套接字,里面寫個狀態停止read那種就可以。 requests沒找到類似的方法。

import requestsfrom threading import Threadfrom contextlib import closingimport jsonimport timeclass TestT(Thread): def __init__(self):super(TestT, self).__init__()self.s = requests.session() def stop(self):self.p.connection.close()self.s.close() def run(self):t = time.time()self.p = self.s.get(’http://api2.qingmo.com/api/column/tree/one?Pid=8&Child=1’, stream=True, timeout=10)# 消耗了很多時間print time.time()-twith closing(self.p) as r: print time.time()-t data = ’’ for chunk in r.iter_content(4096):data += chunk print json.loads(data)print time.time()-tt = TestT()t.start()t.join(30)t.stop()t.join()

改了下,用了流式讀取,但是 get的時候,還是花了3秒多,如何中斷這3秒?

問題解答

回答1:

加一個IsStop變量,然后return停止線程

import requestsfrom threading import Threadfrom contextlib import closingimport jsonimport timeclass TestT(Thread): def __init__(self):super(TestT, self).__init__()self.s = requests.session()self.IsStop = False def stop(self):self.p.connection.close()self.s.close()self.IsStop = True def run(self):t = time.time()self.p = self.s.get(’http://api2.qingmo.com/api/column/tree/one?Pid=8&Child=1’, stream=True, timeout=10)# 消耗了很多時間print time.time()-twith closing(self.p) as r: print time.time()-t data = ’’ for chunk in r.iter_content(4096):if self.IsStop : return Nonedata += chunk print json.loads(data)print time.time()-tt = TestT()t.start()t.join(30)t.stop()t.join()

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 舞钢市| 甘洛县| 陆河县| 桂阳县| 介休市| 广元市| 汶川县| 克东县| 汝南县| 敖汉旗| 淳安县| 虹口区| 额济纳旗| 咸丰县| 桦甸市| 冕宁县| 双鸭山市| 五家渠市| 金华市| 宾阳县| 新河县| 泽州县| 正阳县| 饶阳县| 江阴市| 青田县| 临汾市| 宜春市| 旬阳县| 平南县| 松原市| 静海县| 突泉县| 韶山市| 四子王旗| 黄陵县| 奇台县| 宁津县| 嘉禾县| 鹤庆县| 石城县|