C'est une méthode pour créer rapidement un serveur HTTP pour une petite vérification de fonctionnement.
CallbackServer.py
#!/usr/bin/env python
import requests
from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
import urlparse
def start(port, callback):
def handler(*args):
CallbackServer(callback, *args)
server = HTTPServer(('', int(port)), handler)
server.serve_forever()
class CallbackServer(BaseHTTPRequestHandler):
def __init__(self, callback, *args):
self.callback = callback
BaseHTTPRequestHandler.__init__(self, *args)
def do_GET(self):
parsed_path = urlparse.urlparse(self.path)
query = parsed_path.query
self.send_response(200)
self.end_headers()
result = self.callback(query)
message = '\r\n'.join(result)
self.wfile.write(message)
return
Il définit une classe qui définit une fonction de rappel basée sur HTTPServer. Veuillez installer les demandes avec pip, etc.
Comment l'utiliser, c'est comme ça.
simple_test.py
#!/usr/bin/env python
# coding:utf-8
import sys
import CallbackServer
def callback_method(query):
return ['Hello', 'World!', 'with', query]
if __name__ == '__main__':
port = sys.argv[1]
CallbackServer.start(port, callback_method)
Si vous ne recevez que le numéro de port et que vous transmettez le numéro de port et la méthode (callback_method
) qui sera appelée lors d'un accès HTTP, le serveur HTTP montera sans autorisation.
callback_method
reçoit une requête GET (derrière? Dans l'URL) comme argument et retourne la chaîne de caractères retournée en tant que réponse avec retour.
Si vous renvoyez une liste de chaînes de caractères, elle sera interrompue par CRLF sans autorisation.
Commencez
./simple_test.py 12345
Après cela, si vous accédez à http: // localhost: 12345 /? Hoge = 123
depuis le navigateur
Hello
World!
with
hoge=123
Est sortie.
Recommended Posts