Иконка ресурса

AmxxEasyHttp 1.4.0

Нет прав для скачивания
Авторы:

Благодарность:
Благодарность всем контрибьютерам:

Требования:
  • AMX Mod X 1.8.3+
  • AMX Mod X 1.8.2 - частичная поддержка - некоторые функции из инклудов недоступны, т.к. превышают длинну 32 символа.
  • Для Linux:
    • GLIBC 2.19 или выше

Мультиязычность:
  1. EN

Ключевые особенности​

  • Асинхронные запросы
  • Поддержка HTTPS
  • Поддержка FTP
  • Встроенная поддержка JSON
  • Url-кодирование для url и POST параметров
  • HTTP аутентификация
  • Таймауты для соединения и передачи данных
  • Поддержка cookie
  • Поддержка proxy
  • Поддержка HTTP keep-alive

Примеры использования​

GET запрос
Код:
http_get()
{
    ezhttp_get("https://httpbin.org/get?foo=bar", "http_complete")
}

public http_complete(EzHttpRequest:request_id)
{
    if (ezhttp_get_error_code(request_id) != EZH_OK)
    {
        new error[64]
        ezhttp_get_error_message(request_id, error, charsmax(error))
        server_print("Response error: %s", error);
        return
    }

    new data[512]
    ezhttp_get_data(request_id, data, charsmax(data))
    server_print("Response data: %s", data)
}

POST запрос
Код:
http_post()
{
    new EzHttpOptions:options_id = ezhttp_create_options()
    ezhttp_option_set_header(options_id, "Content-Type", "text/plain")
    ezhttp_option_set_body(options_id, "Hello!")

    ezhttp_post("https://httpbin.org/post", "http_complete", options_id)
}

public http_complete(EzHttpRequest:request_id)
{
    if (ezhttp_get_error_code(request_id) != EZH_OK)
    {
        new error[64]
        ezhttp_get_error_message(request_id, error, charsmax(error))
        server_print("Response error: %s", error);
        return
    }

    new data[512]
    ezhttp_get_data(request_id, data, charsmax(data))
    server_print("Response data: %s", data)
}

FTP запросы
Код:
public ftp_upload()
{
    ezhttp_ftp_upload(
        .user = "user",
        .password = "password",
        .host = "127.0.0.1",
        .remote_file = "wads/cstrike_1.wad",
        .local_file = "cstrike.wad",
        .on_complete = "ftp_upload_complete"
    )

    ezhttp_ftp_upload2(
        .uri = "ftp://user:[email protected]/wads/cstrike_2.wad",
        .local_file = "cstrike.wad",
        .on_complete = "ftp_upload_complete",
        .security = EZH_SECURE_EXPLICIT
    )
}
security = EZH_SECURE_EXPLICIT необходим, если сервер требует установки защищённого соединения.

Поведение при смене карты​

По умолчанию при смене карты все запросы прерываются. Колбэки вызываются с кодом EZH_REQUEST_CANCELLED.

Альтернативным вариантом является указание опции ezhttp_option_set_plugin_end_behaviour(options_id, EZH_FORGET_REQUEST), в этом случае запрос не будет прерван при смене карты, но при завершении запроса после смены карты колбек не будет вызван.

Очередь запросов​

Модуль использует до 6 потоков для выполнения запросов, поэтому нет гарантии, что запросы будут выполняться в том порядке, в котором они были отправлены. Если вам необходимо выполнять запросы последовательно, вы можете создать очередь с помощью new EzHttpQueue:queue_id = ezhttp_create_queue(), а затем установить опцию ezhttp_option_set_queue(options_id, queue_id) для всех запросов, которые необходимо выполнить в этой очереди.
Обратите внимание, очередь нужно создать только один раз, например при инициализации плагина.
Опубликовал
Polarhigh
Скачивания
29
Просмотры
372
Первый выпуск
Обновление

Оценки

0,00 звёзд Оценок: 0
Назад
Верх