Приветствую вас, Гость | Вторник, 08.07.2025, 02:50
Главная ? Форум ? Новости соц.сетей ? Всё для uCoz ? Набор модераторов
Реклама
Мини-чат
Топ пользователей
Баннеробмен
Последние посты
Горячие обсуждения
  • Страница 1 из 1
  • 1
Http
L1ghT
13.03.2014, 22:27 | Сообщение # 17
Пользователи
Сообщений: 36
1

Для начала расскажу о функции:
Функция доступна с 0.3b версии
с помощью неё мы можем брать текст из интернета и он будет виден в сампе(возможно и другие применения)
Параметры функции:
Код
(index, type, url[], data[], callback[])
index - ID (playerid,giveplayerid)
type - тип запроса который вы хотите отправить
url[] - URL запроса (без "http://")
data[] - любое сообщение данных которое будет отправлено с запросом
callback[] - Название функции обратного вызова если вы хотите использовать для обработки ответов на этот запрос.


Типы запросов(type):
Код
HTTP_GET - Отправляет запрос на http.
HTTP_POST - Отправляет запрос с данными.
HTTP_HEAD - Отправляет запрос HTTP, но игнорирует любые данные ответа - возвращение только код ответа.


Коды ответов:
Код
HTTP_ERROR_BAD_HOST         1
HTTP_ERROR_NO_SOCKET         2
HTTP_ERROR_CANT_CONNECT                   3
HTTP_ERROR_CANT_WRITE         4
HTTP_ERROR_CONTENT_TOO_BIG      5
HTTP_ERROR_MALFORMED_RESPONSE           6


А так же стандартные коды ответов:
Код
HTTP 404 (страница не найдена), 500 (ошибка сервера) или 403 (запрещено)


Пример:
В начале где все инклуды:
Код
#include <a_http>
 

Создаём
Код
forward MyHttpResponse(index, response_code, data[]);
 

в
Код
public OnPlayerCommandText(playerid, cmdtext[])
 

добавляем
Код
if(!strcmp("/hello",cmdtext,true))
     {
         HTTP(playerid, HTTP_GET, "www.killerchutney.com/hello.txt", "", "MyHttpResponse");
         return 1;
     }
 

Далее куда нибудь в конец:
Код
public MyHttpResponse(index, response_code, data[])
{
     new buffer[ 128 ];
     if(response_code == 200) //Запрос успешен?
     {
         //Да!
         format(buffer, sizeof(buffer), "Ответ: %s", data);
         SendClientMessage(index, 0xFFFFFFFF, buffer);
     }
     else
     {
         //нет!
         format(buffer, sizeof(buffer), "Сбой в запросе,код ответа: %d", response_code);
         SendClientMessage(index, 0xFFFFFFFF, buffer);
     }
}
 

Если все сделали верно то должно прислать(после ввода команды(/hello):Ответ:Hello there! Congratulations on your first HTTP
request from within SA-MP!

Автор перевода:TAP04eGG
/index/8-1
  • Страница 1 из 1
  • 1
Поиск: