Files
uarep-ctl/scenes/контроль/request.gd
TotMaxim 38529ac0cc
Some checks failed
Локальный тест / test (push) Has been cancelled
Обновление контроля АФСП
2026-04-05 15:52:50 +03:00

40 lines
2.3 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

extends HTTPRequest
## Для приборов АФСП и РТР
const RESULT_STRINGS = {
RESULT_SUCCESS: 'Запрос успешен',
RESULT_CHUNKED_BODY_SIZE_MISMATCH: 'Несоответствие размеров частей сообщения',
RESULT_CANT_CONNECT: 'Запрос не выполнен при подключении',
RESULT_CANT_RESOLVE: 'Запрос не выполнен при разрешении',
RESULT_CONNECTION_ERROR: 'Запрос не выполнен из-за ошибки соединения (чтения/записи)',
RESULT_TLS_HANDSHAKE_ERROR: 'Запрос не выполнен на TLS рукопожатии',
RESULT_NO_RESPONSE: 'Запрос не имеет ответа (пока)',
RESULT_BODY_SIZE_LIMIT_EXCEEDED: 'Запрос превысил максимальный размер, см. `body_size_limit`',
RESULT_BODY_DECOMPRESS_FAILED: 'Не удалось распаковать сообщение',
RESULT_REQUEST_FAILED: 'Запрос не удался (в настоящее время не используется)',
RESULT_DOWNLOAD_FILE_CANT_OPEN: 'Невозможно открыть файл загрузки',
RESULT_DOWNLOAD_FILE_WRITE_ERROR: 'Невозможно записать в файл загрузки',
RESULT_REDIRECT_LIMIT_REACHED: 'Запрос достиг максимального предела перенаправления, см. `max_redirects`',
RESULT_TIMEOUT: 'Время истекло' }
@export var request_url: String = ''
signal send_http_request() ## Отправка запроса
func get_result_string(result: Result):
return RESULT_STRINGS[result] if RESULT_STRINGS.has(result) else '<неизвестный код результата HTTPRequest - %d>' % result
func _on_request_timer():
print('_on_request_timer: ', Time.get_ticks_msec())
if HTTPClient.Status.STATUS_DISCONNECTED != get_http_client_status():
return
var rc: = request(request_url)
if rc != Error.OK:
push_error('%s: \"%s\"' % [error_string(rc), request_url])
else:
emit_signal('send_http_request')