REST in Pawn

REST in Pawn 1.3.1

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
В чем может быть проблема? Уже все перепробовал. Пытаюсь отправить данные POST-запросом, но в результате получаю пустоту.
C-подобный:
#include <lvl_ranks>
#include <cstrike>
#include <ripext>


public void OnPluginStart()
{
    if(LR_IsLoaded()) LR_Hook(LR_OnLevelChangedPost, OnLvlCH);
}

public void OnLvlCH(int iClient, int iNewLevel, int iOldLevel)
{
    if(0 < iClient <= MaxClients && IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        if(iOldLevel < iNewLevel)
        {
     
            char auth[22], name[MAX_NAME_LENGTH], fmt[MAX_NAME_LENGTH];

            JSONArray jArray = new JSONArray();
            JSONObject obj = new JSONObject();
         
            GetClientAuthId(iClient, AuthId_Steam2, auth, sizeof(auth));
         
            Format(fmt, sizeof(fmt), "%s", auth);
            obj.SetString("SteamID", fmt);
            Format(fmt, sizeof(fmt), "%N", iClient);
            obj.SetString("Name", fmt);
            obj.SetInt("LVL_UP", iNewLevel);
            obj.SetInt("Time", GetTime());

            for(int i = 1; i <= MaxClients; i++)
            {
                if(IsClientInGame(i) && !IsClientSourceTV(i) && i != iClient)
                {
                    GetClientAuthId(i, AuthId_Steam2, auth, sizeof(auth));
                    if(IsFakeClient(i)) GetClientName(i, name, sizeof(name));
                 
                    char tt[1024];
                    Format(tt, sizeof(tt), "{'SteamID':'%s', 'Kills':%d, 'Death':%d, 'Score':%d, 'Time':%d}", IsFakeClient(i) ? name : auth, GetClientFrags(i), GetClientDeaths(i), CS_GetClientContributionScore(i), IsFakeClient(i) ? 0.0 : GetClientTime(i));
                    jArray.PushString(tt);
                }
            }
            obj.Set("Json", jArray);
         
            HTTPRequest req = new HTTPRequest("G:/OSPanel/domains/localhost/index.php");
         
            req.Post(obj, OnAcceptObj);
         
            delete jArray;
            delete obj;
        } 
    }
}

public void OnAcceptObj(HTTPResponse response, any value, const char[] error)
{
    if(response.Status != HTTPStatus_OK)
    {
        LogMessage("Error: %s", error);
        return;
    }

    LogMessage("Data successfully sends");
}
При дебаге получаю такое:
C-подобный:
{"POST":[],"GET":[]}
При этом сам JSON массив прописан правильно и существует, но такое чувство, что екст просто теряет данные, хотя сам запрос вроде доходит, но пустой...
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #103
@Palonez, а как читаешь запрос?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • Автор ресурса
  • #105
@Palonez, PHP не парсит JSON. Его нужно выдёргивать из php://input.
PHP:
json_decode(file_get_contents('php://input'));
 

Horoaglle45

Участник
Сообщения
64
Реакции
1
Подскажите, что не так сделал?

Errors:
Telegram_Core.smx ([Telegram] Core (LiteServers LLP)): Required extension "REST in Pawn" file("rip.ext") not running
Online Alert Telegram.smx (Online Alert Telegram): Required extension "REST in Pawn" file("rip.ext") not running
 

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Есть ли возможность забрать данные и принять как текст? В одном моменте приходиться работать с xml, но никак не выходит достать текст. А ставить два разных расширения для работы с get/post не хотелось бы
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Есть ли возможность забрать данные и принять как текст? В одном моменте приходиться работать с xml, но никак не выходит достать текст. А ставить два разных расширения для работы с get/post не хотелось бы
ну это REST (JSON), причем тут текст и XML
 
Сверху Снизу