我收到发布的数据并立即返回空的200 OK
响应。之后我将处理接收到的数据。我正在考虑如何使用teardown
函数,但没有找到如何将接收到的数据传递给它:
@app.route('/f', methods = ['POST'])
def f():
data = request.stream.read()
return ''
@app.teardown_request
def teardwon_request(exception=None):
# How to use posted data here?
烧瓶版本为0.10.1
我正在尝试实现一个Paypal IPN侦听器
https://developer.paypal.com/webapps/developer/docs/classic/ipn/gs_IPN/#overview
请注意,侦听器的HTTP200响应发生在侦听器的IPN消息之前。你知道吗
您的工作过于复杂;只需在请求处理程序中从Flask服务器发送一个请求。Paypal IPN通知只需要一个空的200响应,Paypal并不要求您在将HTTP请求发送到服务器之前发送200 OK。你知道吗
概述页面确实让人困惑,但是发布的PHP代码也不会关闭请求,直到paypalipn发布回他们的服务器。你知道吗
如果这个是一个硬需求(使它成为一个糟糕的设计),那么您必须异步处理返回Paypal的请求。你可以用一个单独的线程来完成这个任务,例如,使用一个队列,把从IPN接收到的数据推送进来,让一个单独的线程轮询队列,并从该线程与Paypal通信。或者您可以使用Celery来简化作业(将任务推出以异步处理)。不管怎样,这都可以让您提前关闭传入的请求。你知道吗
相关问题 更多 >
编程相关推荐