0

我正在使用 Flask 创建一个应用程序,该应用程序使用 HTTPS POST 从服务器接收一些数据并处理其数据。一旦我收到来自服务器的消息,我需要发送一个“status = 200”,这样服务器就会知道我得到了信息,并停止向我重新发送信息。

我必须发送 HTTPS GET 吗?这并不是真正的获取,因为我唯一需要的是通知服务器我收到了消息......

我怎么能在python中做到这一点?我需要在处理收到但没有返回的数据后执行此操作。

app = Flask(__name__)
@app.route('/webhook', methods=['POST','GET'])``
def webhook():


req = request.form
xml = req['data']
#HOW DO I SEND A CODE 200 NOW???
info = ET.fromstring(xml)
print info[0].text
print info[1].text
print info[2].text
print info[3].text

谢谢!

4

1 回答 1

4

如果您想确定响应代码,您可以发送一个空响应并只指定响应代码,如下所示

return '', 200

完整的答案可以在 Flask 中的Return HTTP status code 201 中找到

更新问题的更新:

你可以使用 a Thread

import threading

app = Flask(__name__)
@app.route('/webhook', methods=['POST','GET'])``

def worker(xml):
  info = ET.fromstring(xml)

  print info[0].text
  print info[1].text
  print info[2].text
  print info[3].text

  return

def webhook():
  req = request.form
  xml = req['data']

  # This executes in background
  t = threading.Thread(target=worker, args=(xml,))
  t.start()

  # So that you can return before worker is done
  return '', 200
于 2017-06-04T11:27:19.687 回答