Проверка ответа с порта localhost:8000

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
здравствуйте, как указать условие
if на http://localhost:8000/ ответ == 'Не удается получить доступ к сайту':
опробовал:
Python
1
2
3
import urllib.request
http_localhost_8000 = urllib.request.urlopen('http://localhost:8000/').read().decode('utf8')
print(http_localhost_8000) # ответ браузера с адреса http://localhost:8000/
пока ошибка:
urllib.error.URLError: <urlopen error [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение>
так как же узнать ответ?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 668
475
83
если сервер не работает, или он не прослушивает указанный в подключении порт, он вам выдает такую ошибку, это свидетельствует о том, что вам нужно, то есть клиенту не удалось установить соединение (Не удается получить доступ к сайту )...
так же такая ошибка возникает, если вы используете прокси, и в коде этого не учитываете...
 

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
Python:
import requests
try:
    requests.get('http://localhost:8000')
    print("Подключение установлено")
except:
    print("Подключение не установлено")
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
спасибо, то, что нужно
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
вопрос назрел, как закрыть открытый сервер?
открываю кодом
Код:
import requests
try:
    requests.get('http://localhost:8000')
    print('Подключение установлено')
except:
    print('Подключение не установлено')
    from http.server import HTTPServer, CGIHTTPRequestHandler
    server_address = ("", 8000)
    httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
    httpd.serve_forever()
и почему при вводе в браузер localhost:8000/server/index.py
отображает
#!/usr/bin/env python3
print("Content-type: text/html")
print()
print("<h1>Hello world!</h1>")
а я ожидаю только
Hello world!-как исправить? спс
 

borntohack

змееуст
Команда форума
Модератор
Апр 22, 2020
78
62
18
39
Москва, РФ
Полагаю, вам нужно глубже копнуть в специфику работы HTTP протокола.
Тезисно ответы таковы:
1. Его не нужно закрывать с точки зрения сессии. Он ответил клиенту и на том сессия будет завершена (если ничего специально не дописано).
1а. Если речь идет о том, как его вообще потушить, то либо нужно погасить соответствующий тред httpd (любым доступным способом), либо остановить весь скрипт.
2. Вы обратились к файлу и получили содержимое файла, поскольку ваш сервер не знает как его обрабатывать. Этот код не интерпретируется и не исполняется. В данном случае, рекомендую обратиться к документации по соответствующему модулю (HTTPServer)
 

Форум IT Специалистов