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

leekyrave

Известный
Автор темы
419
226
Версия 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 =...

Quasper

Известный
835
354
Так тут проблема не в vk api а в отличиях GET от POST запроса.
не пойму смысл твоих ответов
1610100514072.png
 

Tema05

Известный
1,471
435
а нахуя (без негатива, просто так эффективнее звучит) для лагучей vk api post запрос. Get хватит для этого.
А потом чел как я будет гадать почему у него от отправляется большое сообщение )