- π¬ ΠΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΌ
- π ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΠ΅Π½ ΠΈΠ»ΠΈ ΡΡΡΡΡ http Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ
- π ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° https
- π ββοΈ Nginx Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
- π Π£Π΄ΠΎΠ±Π½Π°Ρ ΠΎΠ±Π΅ΡΡΠΊΠ°
http_requests.lua
, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΏΠΈΡΠΎΠ½ΠΎΠ²ΡΠΊΠΎΠΉ requests - π¦ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ
multipart/form-data
Π·Π°ΠΏΡΠΎΡΠΎΠ² - π€ ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΠ°ΡΡΠ΅ΡΠΎΠ², ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡΠΎΠ², ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ API Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
- ΠΠ΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°ΠΆΠ΅ Π² Garry's Mod
luarocks install lua-requests-async
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ
-- http_async.lua
local http = require("http_async")
http.request({
url = "https://httpbin.org/post?foo=bar",
method = "POST",
body = "body payload",
success = function(code, body, headers)
assert(code == 200)
assert(headers["connection"] == "close")
print(body)
end,
})
require("copas").loop()
-- http_requests.lua
local requests = require("http_requests")
requests.get({"https://httpbin.org/get", {key = "val"}}, function(res)
print(res.content)
end)
require("copas").loop()
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π² ΠΊΠΎΠ½ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ:
-- ΠΡΠΏΠΎΠ»Π½ΠΈΡ Π²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡΠΈΠ΅ΡΡ http Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΠ°
require("copas").loop()
-- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅
while true do require("copas").step() end
ΠΠΎΠΊΠ° ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅Ρ, Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π² Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ². ΠΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π½Π° readme ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ git.io/ggram
- ΠΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ multipart "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ" Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΡΡΠΎ-ΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ
- ΠΠΎΠ±Π°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ· ΠΏΠΈΡΠ½ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ requests
- (?) Π‘Π΄Π΅Π»Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠ°ΠΊ Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ , ΡΠ°ΠΊ ΠΈ Π±Π΅Π· Π½ΠΈΡ . Π‘ ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠ°ΠΌΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΈ
- (?) ΠΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π΅, ΡΠΎ Π±Π΅Π· copas, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ (Π½ΠΎ Π΅ΡΡΡ Π»ΠΈ ΡΠΌΡΡΠ»)