我想運行一個腳本,它將創建一個簡單的HTTP服務器併爲每個請求運行一個函數。運行一個小HTTP服務器來檢查回調
我正在使用Python來測試應該給我一個回調的API。 現在,我使用http://requestb.in/來測試回調,但我想直接在我的python腳本中測試它。
是否可以在localhost:6548上運行回調服務器綁定,並基於請求測試某些內容?
謝謝你的幫助。
我想運行一個腳本,它將創建一個簡單的HTTP服務器併爲每個請求運行一個函數。運行一個小HTTP服務器來檢查回調
我正在使用Python來測試應該給我一個回調的API。 現在,我使用http://requestb.in/來測試回調,但我想直接在我的python腳本中測試它。
是否可以在localhost:6548上運行回調服務器綁定,並基於請求測試某些內容?
謝謝你的幫助。
您可以使用wsgiref
託管簡單的WSGI Web應用程序。例如:
from wsgiref.simple_server import make_server
import datetime
def application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
retval = [
str(environ),
"\n",
"Hello world!\n",
str(datetime.datetime.now())
]
return retval
make_server('localhost', 6548, application).serve_forever()
此代碼創建一個Python WSGI web應用程序和服務於http://localhost:6548
該應用程序。
您可以使用Flask微框架。下面是一個簡單的例子:
from flask import Flask, request
app = Flask(__name__)
@app.route('/firs_call', methods=['POST'])
def first_callback():
if request.method == 'POST':
result = request.data
client_ip = request.remote_addr
return "OK"
@app.route('/second_call', methods=['GET'])
def second_callback():
if request.method == 'GET':
#....
pass
return "OK"
if __name__ == '__main__':
app.debug = True
app.run("127.0.0.1")
可以達到在http://127.0.0.1:5000/
不'這個Web應用程序make_server'阻止腳本?有沒有辦法在一個線程中運行它? – Natim
''serve_forever()''是一個阻塞調用。是的,你可以在一個線程中運行它,使用線程模塊:http://docs.python.org/2/library/threading.html – codeape