84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
Python의 요청에서 요청을 중단하는 방법은 무엇입니까? 여러 스레드를 사용하여 동시에 가져오지만 중지 요청 작업을 찾을 수 없습니다. 이전에는 스레드가 끝날 때까지만 기다릴 수 있었고 거기에 상태를 작성하여 읽기를 중지했습니다. 요청에서 비슷한 방법을 찾지 못했습니다.
변경하고 스트리밍 리딩을 했는데도 3초 이상 걸렸네요. 이 3초를 어떻게 방해하나요?
学习是最好的投资!
加一个IsStop变量,然后return停止线程
import requests from threading import Thread from contextlib import closing import json import time class 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()-t with closing(self.p) as r: print time.time()-t data = '' for chunk in r.iter_content(4096): if self.IsStop : return None data += chunk print json.loads(data) print time.time()-t t = TestT() t.start() t.join(30) t.stop() t.join()
加一个IsStop变量,然后return停止线程