Обработчик HTTP-запросов

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Вызывается при завершении HTTP-запроса. Данная функция не имеет конкретного названия, т.к. оно указывается пользователем (см. пример).

Параметры:

(index, response_code, data[])
index Индекс, указанный 1-м параметром в вызове функции HTTP().
response_code Код ответа на HTTP-запрос. Помимо общепринятых кодов в SA-MP также различаются дополнительные:
  • HTTP_ERROR_BAD_HOST - указан неправильный URL.
  • HTTP_ERROR_NO_SOCKET - отсутствует сетевой интерфейс (сокет).
  • HTTP_ERROR_CANT_CONNECT - не удалось подключиться к указанному в URL ресурсу (ресурс недоступен).
  • HTTP_ERROR_CANT_WRITE - не удалось отправить данные POST-запроса.
  • HTTP_ERROR_CONTENT_TOO_BIG - слишком большое количество данных в ответе на запрос.
  • HTTP_ERROR_MALFORMED_RESPONSE - неправильно сформированные данные ответа на запрос.
data[] Данные, полученные в ответ на запрос.


Возвращаемое значение:

Возвращаемое значение не обрабатывается сервером.

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

CMD:http(playerid, params[])
{
    HTTP(playerid, HTTP_GET, "pawn-lang.org", "", "MyHttpResponse");
    return SendClientMessage(playerid, -1, "Запрос отправлен.");
}

// Вместо "MyHttpResponse" можно задать функции любое другое название,
// главное не забыть указать то же самое название в вызове функции HTTP().
forward MyHttpResponse(index, response_code, data[]);
public  MyHttpResponse(index, response_code, data[])
{
    new string[144];

    // Если HTTP-запрос совершился успешно (код 200), выведем ответ сайта, иначе - сообщим код ошибки.
    if (response_code == 200)
        format(string, sizeof(string), "Ответ сайта: %s", data);
    else
        format(string, sizeof(string), "Неудача; запрос завершился с кодом %d", response_code);

    // В параметре index содержится ID игрока, который был передан 1-м параметром в вызове HTTP().
    return SendClientMessage(index, -1, string);
}


См. также: