Подробнее про POST

hinazuki

Потрачен
Автор темы
346
95
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Версия MoonLoader
.026-beta
Всем привет!
Так вот, я это все делал через гет запрос. Но мне уже это как-то не интересно.
Хотелось бы узнать как отправить пост запрос(я видел тему от фипа, но я нихуя не понял. Куда писать аргументы, куда вставлять). Так вот можно чутка подробнее с примерами, ну например: Рассказать куда писать аргументы, ну например подумаем что у меня есть хост "https://myak.space/test" и есть два аргументв "login" и "password". Желательно подробнее, спасибо. И мне на эти аргументы надо отправить какие-то данные.
 
  • Нравится
Реакции: Kayo
Решение
ку!
я сам долбился с этим около неделю чичас расскажу.
Пост - это запрос на ссылочку но без параметров, параметры идут в теле запроса.

Как сделать этот долбанный пост запрос?
https://www.blast.hk/threads/20532/ - тут можно про это почитать, и сейчас я покажу пример на моей модернизированной функции юзая копас.

Lua:
function httpRequest(method, request, headers, args, handler) -- lua-requests || Метод выбираешь любой. От PUT,GET до POST и DELETE, реквесты(либа все сами обработают) Реквест - сама ссылка. Заголовки это сделано сугубо для моих целей и для токенизации. В заголовках можно указывать тип ПОСТ запроса. args - это те самые параметры, тип которых зависит от типа Пост запроса. Хэндлер - обработка ошибок.
    -- start polling...

leekyrave

Известный
420
223
ку!
я сам долбился с этим около неделю чичас расскажу.
Пост - это запрос на ссылочку но без параметров, параметры идут в теле запроса.

Как сделать этот долбанный пост запрос?
https://www.blast.hk/threads/20532/ - тут можно про это почитать, и сейчас я покажу пример на моей модернизированной функции юзая копас.

Lua:
function httpRequest(method, request, headers, args, handler) -- lua-requests || Метод выбираешь любой. От PUT,GET до POST и DELETE, реквесты(либа все сами обработают) Реквест - сама ссылка. Заголовки это сделано сугубо для моих целей и для токенизации. В заголовках можно указывать тип ПОСТ запроса. args - это те самые параметры, тип которых зависит от типа Пост запроса. Хэндлер - обработка ошибок.
    -- start polling task
    if not copas.running then
        copas.running = true
        lua_thread.create(function()
            wait(0)
            while not copas.finished() do
                local ok, err = copas.step(0)
                if ok == nil then error(err) end
                wait(0)
            end
            copas.running = false
        end)
    end
    -- do request
    if handler then
        return copas.addthread(function(m, r, hh, a, h)
            copas.setErrorHandler(function(err) h(nil, err) end)
            h(requests.request(m, r, hh, a))
        end, method, request, headers, args, handler)
    else
        local results
        local thread = copas.addthread(function(m, r, hh, a)
            copas.setErrorHandler(function(err) results = {nil, err} end)
            results = table.pack(requests.request(m, r, hh, a))
        end, method, request, headers, args)
        while coroutine.status(thread) ~= 'dead' do wait(0) end
        return table.unpack(results)
    end
end

Lua:
    -- Примерчик
    login = 'abobus'
    password = 'yes'
    local data = {login = login, pass = md5.sumhexa(password), ip = ip, port = port, serial = serial} - как видишь указывать параметры легко
    local headers = {['Content-Type'] = 'application/json'} -- application/json - тот свмый тип запроса
    local response, err = httpRequest('POST',{'http://api.mint-plantation.ru/auth.php',headers = headers, data = data})
    local response = response.json() - учитывая то, что практически всегда ответ приходит в формате жсона - то пишем response.json()

С первого взгляда ничего не понятно, но сейчас будет еще непонятнее
Используя httpanalyzer можно посмотреть что мы отправили, и что мы получили
ZLLiThU.png


Поле Request - это сформированный запрос на сервер.
Поле Response - наш ответ.
Там передаешь то что хочешь.
В headers тоже можно указывать что хочешь, например токен как делает клаудфлейр(защита от ддоса).
Lua:
headers = {['Content-Type'] = 'application/json',['token'] = 'abobus!', ['chtotoewe'] = 'nyda'}
 
  • Вау
Реакции: хуега)