Нужна помощь с функцией асинхронных запросов

leekyrave

Известный
Автор темы
420
224
Версия MoonLoader
.027.0-preview
Приветствую всех.

Код:
function asyncHttpRequest(method, url, args, resolve, reject)
    local request_thread = effil.thread(function (method, url, args)
      
       local result, response = pcall(requests.request, method, url, args)
       if result then
          response.json, response.xml = nil, nil
          return true, response
       else
          return false, response
       end
    end)(method, url, args)
    -- Если запрос без функций обработки ответа и ошибок.
    if not resolve then resolve = function() end end
    if not reject then reject = function() end end
    -- Проверка выполнения потока
    lua_thread.create(function()
       local runner = request_thread
       while true do
          local status, err = runner:status()
          if not err then
             if status == 'completed' then
                local result, response = runner:get()
                if result then
                   resolve(response)
                else
                   reject(response)
                end
                return
             elseif status == 'canceled' then
                return reject(status)
             end
          else
             return reject(err)
          end
          wait(0)
       end
    end)
 end

Вызываю ассинхрон запрос



Lua:
sampRegisterChatCommand("test", function() asyncHttpRequest('POST', 'https://api.vk.com/method/messages.send',[[?peer_id=2000000021&message=123&access_token=спрятан&v=5.81]],
    function(response)
       print(response)
    end,
    function(err)
       print(err)
    end)
    end)

В итоге проверки получаю ошибку - ...ты и т.д\Сборки\Новая сборка\moonloader\lib\requests.lua:72: attempt to index local 'request' (a string value)

иду смотреть в файл реквестов

Lua:
if type(url) == "table" then
    request = url
  else
    request = args or {}
    request.url = url -- 72 строка
  end


Вопрос - как починить?
 
Решение
Приветствую всех.

Код:
function asyncHttpRequest(method, url, args, resolve, reject)
    local request_thread = effil.thread(function (method, url, args)

       local result, response = pcall(requests.request, method, url, args)
       if result then
          response.json, response.xml = nil, nil
          return true, response
       else
          return false, response
       end
    end)(method, url, args)
    -- Если запрос без функций обработки ответа и ошибок.
    if not resolve then resolve = function() end end
    if not reject then reject = function() end end
    -- Проверка выполнения потока
    lua_thread.create(function()
       local runner = request_thread
       while true do
          local status, err =...

Tema05

Известный
1,433
391
тоже не робит,на копасе не тестил
возможен такой вариант,что это из за стороннего скрипта блочит исходящие запросы?
Пробовал?
Какого хрена ты аргументы с скобки закинул? Мне кажется в этом и проблема, он строку ищет а ты в двойные квадратные скобки почему-то запихал. И знак вопроса перед аргументами в Post запросе указывать не нужно.

2 вариант это то что ты неправильно составил запрос для vk api. При отправке сообщения нужно указывать рандомный ID. Иди в доки смотреть что это
 

Tema05

Известный
1,433
391
вспомнил,что я живу в украине и что у меня заблочен вк и из за этого запрос не доходит.
новый вопрос,как сделать такой запрос через посредник,хост
Ну да, и пофиг что это я предположил что проблема может быть в vk api, и то что указал на вероятную причину ошибку в твоём коде. Пусть человек который заменил слово POST на GET и переместил аргументы получит оценку 'решение', хотя его предложение заменить метод запроса не имеет смысла.
 

leekyrave

Известный
Автор темы
420
224
Ну да, и пофиг что это я предположил что проблема может быть в vk api, и то что указал на вероятную причину ошибку в твоём коде. Пусть человек который заменил слово POST на GET и переместил аргументы получит оценку 'решение', хотя его предложение заменить метод запроса не имеет смысла.
обнови страничку =)
тебе большое спасибо
 
  • Нравится
Реакции: Tema05