2012-12-03 27 views
1

我想運行一個腳本,它將創建一個簡單的HTTP服務器併爲每個請求運行一個函數。運行一個小HTTP服務器來檢查回調

我正在使用Python來測試應該給我一個回調的API。 現在,我使用http://requestb.in/來測試回調,但我想直接在我的python腳本中測試它。

是否可以在localhost:6548上運行回調服務器綁定,並基於請求測試某些內容?

謝謝你的幫助。

回答

2

您可以使用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該應用程序。

+0

不'這個Web應用程序make_server'阻止腳本?有沒有辦法在一個線程中運行它? – Natim

+0

''serve_forever()''是一個阻塞調用。是的,你可以在一個線程中運行它,使用線程模塊:http://docs.python.org/2/library/threading.html – codeape

0

您可以使用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/

相關問題