Pular para o conteúdo principal

HTTP

Descrição​

Envia uma solicitação HTTP encadeada.

NomeDescrição
indexID usado para diferenciar solicitações enviadas para o mesmo callback (útil para playerids)
HTTP_METHOD:methodO tipo da solicitação que você deseja enviar.
const url[]O URL que você deseja solicitar. (Sem 'http://')
const data[]Quaisquer dados POST que você deseja enviar com a solicitação.
const callback[]Nome da função de callback que você deseja usar para lidar com as respostas a esta solicitação.

Retornos​

1 em sucesso, 0 em falha

Definições​

// Tipos de solicitação HTTP
#define HTTP_GET (HTTP_METHOD:1) // Envia uma solicitação HTTP normal.
#define HTTP_POST (HTTP_METHOD:2) // Envia uma solicitação HTTP com dados POST.
#define HTTP_HEAD (HTTP_METHOD:3) // Envia uma solicitação HTTP normal, mas ignora quaisquer dados de resposta - retornando apenas o código de resposta.

// Códigos de resposta de erro HTTP
// Esses códigos complementam os códigos de resposta HTTP comuns retornados em 'response_code'
#define HTTP_ERROR_BAD_HOST (HTTP_ERROR:1)
#define HTTP_ERROR_NO_SOCKET (HTTP_ERROR:2)
#define HTTP_ERROR_CANT_CONNECT (HTTP_ERROR:3)
#define HTTP_ERROR_CANT_WRITE (HTTP_ERROR:4)
#define HTTP_ERROR_CONTENT_TOO_BIG (HTTP_ERROR:5)
#define HTTP_ERROR_MALFORMED_RESPONSE (HTTP_ERROR:6)

Exemplos​

forward MyHttpResponse(index, response_code, data[]);

public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/hello", cmdtext, true))
{
HTTP(playerid, HTTP_GET, "assets.open.mp/hello.txt", "", "MyHttpResponse");
return 1;
}
return 0;
}

public MyHttpResponse(index, response_code, data[])
{
// Neste retorno de chamada, "index" normalmente seria chamado de "playerid" (se você ainda não o recebeu)
new buffer[128];

if (response_code == 200) // A solicitação foi bem-sucedida?
{
// Sim!
format(buffer, sizeof(buffer), "The URL replied: %s", data);
SendClientMessage(index, 0xFFFFFFFF, buffer);
}
else
{
// Não!
format(buffer, sizeof(buffer), "The request failed! The response code was: %d", response_code);
SendClientMessage(index, 0xFF0000FF, buffer);
}
}

Notas​

nota

Além dos códigos de resposta listados acima, também existem todas as respostas típicas do HTTP, como 404 (Página não encontrada), 500 (Erro do servidor) ou 403 (proibido)

Informações relacionadas​