Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Http - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Http Оценка: ***** 2 Голосов

#1
Пользователь офлайн   Oiki 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Для начала расскажу о функции:
Функция доступна с 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!

Если чтото не получается, пишите тут,поможем
3

#2
Пользователь офлайн   Rock & Roll 

  • ДИПЛОМИРОВАННЫЙ ИНЖЕНЕР
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Можно использывать как хранилище обыектов, чтобы мод не засорять
0

#3
Пользователь офлайн   daron0ne 

  • Прохожий
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
сбой в запросе: 6
В чем проблема? Все вставил как тут:о
0

#4
Пользователь офлайн   VistigoN4ik 

  • The Lost World Forever
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
А поподробнее можно? Например как отправить письмо на почту игроку?
0

#5
Пользователь офлайн   JoinT1 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияVistigoN4ik (19 Август 2013 - 15:00) писал:

А поподробнее можно? Например как отправить письмо на почту игроку?


Для этого есть отдельный инклуд.
0

#6
Пользователь офлайн   WILD02RUS 

  • Новичок
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
+
Благодарю
0

#7
Пользователь офлайн   iRusel 

  • iМодератор
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияVistigoN4ik сказал:

А поподробнее можно? Например как отправить письмо на почту игроку?

Если хочешь использовать именно HTTP для отправки тогда пиши скрипт заливай его на свой сайт и через сервер отправляй пост.
0

Сказали спасибо 1:

#8
Пользователь офлайн   VistigoN4ik 

  • The Lost World Forever
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияiRusel (20 Август 2013 - 09:21) писал:

Если хочешь использовать именно HTTP для отправки тогда пиши скрипт заливай его на свой сайт и через сервер отправляй пост.


Хорошо, Попробуем :D
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

2 человек читают эту тему
0 пользователей, 2 гостей, 0 скрытых пользователей