2013-02-20 5 views
3

Я создал «обработчик» питон скрипт следующим образом:SimpleHTTPServer и SocketServer

import SimpleHTTPServer 
import SocketServer 

PORT = 8000 
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler 

httpd = SocketServer.TCPServer(("", PORT), Handler) 

print "Serving at port:", PORT 
httpd.serve_forever() 

У меня также есть яваскрипт функция, которая передает информацию на сервер запрос URL-адреса. Это все работает отлично, когда я бегу мой обработчик сценария, а затем мой JavaScript, я могу видеть все данные из JS в терминале:

localhost.localadmin - - [20/Feb/2013] "GET /?var=data/ HTTP/1.1" 200 - 

То, что я хотел бы сделать, это быть в состоянии получить доступ эти данные из моего сценария обработчика, в идеале примерно такие:

data = httpd.server_forever() #How do I do somethign like this 

Как это осуществить?

ответ

4

Вы можете наследовать SimpleHTTPServer.SimpleHTTPRequestHandler как это:

class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 
    def do_GET(self): 
     # Your code here 
     print "Client requested:", self.command, self.path 

     SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) 

PORT = 8000 

httpd = SocketServer.TCPServer(("", PORT), MyHandler) 

print "Serving at port:", PORT 
httpd.serve_forever() 

Это будет печатать в консоли:

Client requested GET /?var=data/ 

Проверка документации на SimpleHTTPRequestHandler и BaseHTTPRequestHandler для получения дополнительной информации.

+0

ОК благодаря своей работе, но печатает дважды. Я смотрю вглубь кода, но не могу найти почему? (Это не так уж и важно, просто любопытно) – BloonsTowerDefence

+0

На самом деле это может иметь какое-то отношение к моему .Js – BloonsTowerDefence

+0

Если вы получаете этот вывод для каждого соединения: 'Клиент запросил: GET /' 'localhost.localdomain - - [21/Feb/2013 00:38:24] «GET/HTTP/1.1» 200 - ' ' Клиент запросил: GET/ localhost.localdomain - - [21/Feb/2013 00:38:24] "GET/HTTP/1.1 "200 -' , то, возможно, что-то с вашим js. Или вы просто не хотите, чтобы этот 'localhost.localdomain - - [21/Feb/2013 00:38:24]" GET/HTTP/1.1 "200 -' для печати? – nmikhailov

Смежные вопросы