Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Простой http сервер / 5 сообщений из 5, страница 1 из 1
06.08.2015, 14:10
    #39024362
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой http сервер
Собственно сабж, есть простенький код. Который выводит значение GET.

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
import urlparse


class HttpHandler(BaseHTTPRequestHandler):
    protocol_version = "HTTP/1.0"

    def do_GET(self):
        token = str.split(urlparse.urlparse(self.path, scheme='http').query, '=')[1]
        self.send_response(200)
        self.send_header('content-type', 'text/plain')
        self.send_header('content-length', len(token))
        self.end_headers()
        self.wfile.write(token)

server = HTTPServer(("localhost", 8888), HttpHandler)
server.serve_forever()



собственно вопрос, как сделать, чтобы сервер останавливался после первого запроса? Т.е. после того, как я в командной строке выполнил

> curl http://localhost:8888/test.py?code=1234567
...
Рейтинг: 0 / 0
06.08.2015, 16:04
    #39024455
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой http сервер
Извиняюсь за не точность (к сожалению название темы не могу изменить) - код на python.
...
Рейтинг: 0 / 0
06.08.2015, 16:11
    #39024468
Karbafos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой http сервер
server.serve_once()
...
Рейтинг: 0 / 0
06.08.2015, 17:22
    #39024542
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой http сервер
Нет такого метода или что то не так делаю?

P.S.
python-2.7.10
...
Рейтинг: 0 / 0
06.08.2015, 18:02
    #39024578
ALex_hha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой http сервер
Сделал как то так

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
from BaseHTTPServer import HTTPServer
from BaseHTTPServer import BaseHTTPRequestHandler
import urlparse
import time

need_exit = 0


def keep_running():
    if need_exit:
        return False
    else:
        return True


class HttpHandler(BaseHTTPRequestHandler):
    protocol_version = "HTTP/1.0"

    def do_GET(self):
        token = str.split(urlparse.urlparse(self.path, scheme='http').query, '=')[1]
        global need_exit

        self.send_response(200)
        self.send_header('content-type', 'text/plain')
        self.send_header('content-length', len(token))
        self.send_header('Last-Modified', self.date_time_string(time.time()))
        self.end_headers()
        self.wfile.write(token)
        need_exit = 1

server = HTTPServer(("localhost", 8888), HttpHandler)
while keep_running():
    server.handle_request()



P.S.
Может я придумываю велосипед, в php я могу вывести значение get очень просто

Код: php
1.
2.
3.
4.
<?php
    if(isset($_GET['code'])) {
        echo $_GET['code'];
    }



А на питоне приходится парсить строку или все таки есть какая то либа, которая возвращала бы некий массив $_GET ?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Простой http сервер / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]