擅长:python、mysql、java
<p>我怀疑没有调用回调是因为您没有运行Twisted的eventloop(称为<code>reactor</code>)。删除你的睡眠功能并用<code>reactor.run()</code>替换它。在</p>
<pre class="lang-py prettyprint-override"><code>from twisted.internet import reactor
# ...
def main():
a = session.get('https://reqres.in/api/users')
a.addCallbacks(processResponse, processResponse)
#time.sleep(5) # never use blocking functions like this w/ Twisted
reactor.run()
</code></pre>
<p>catch is Twisted的reactor无法重新启动,因此一旦停止事件循环(即<code>reactor.stop()</code>),当再次执行<code>reactor.run()</code>时,将引发异常。换句话说,你的脚本/应用程序只会“运行一次”。为了避免这个问题,我建议您使用<a href="https://crochet.readthedocs.io/en/stable/introduction.html" rel="nofollow noreferrer">^{<cd5>}</a>。下面是一个使用<code>requests-thread</code>中类似示例的快速示例:</p>
^{pr2}$
<p>正如FYI <code>requests-thread</code>不适用于生产系统,且会发生重大变化(截至2017年10月)。本项目的最终目标是为<code>requests</code>设计一个可期待的设计模式。如果您需要支持生产的并发请求,请考虑<code>grequests</code>或{<cd10>}。在</p>