This commit is contained in:
aixianling
2024-12-16 13:51:31 +08:00
commit 00ee9dd8ea
1884 changed files with 817815 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
local addr = {}
local GHC_SUCCESS = 0
local GHC_ErrCreateSocket = -1
local GHC_ErrConnet = -2
local GHC_ErrSend = -3
local GHC_ErrRecv = -4
_G.GetHttpContent = function(host, port, url)
if host == nil or port == nil or url == nil then
return "", -100
end
--print("[GetHttpContent++++++++++++++++++++++++++++++++++++++++111++++++++++++++++:"..tostring(host) )
--print("[GetHttpContent++++++++++++++++++++++++++++++++++++++++222++++++++++++++++:"..tostring(port) )
--print("[GetHttpContent++++++++++++++++++++++++++++++++++++++++333++++++++++++++++:"..tostring(url) )
local socket = LuaSocket:NewSocket()
if socket == nil then
print("create socket error!".. host)
return "", GHC_ErrCreateSocket
end
if addr[host] == nil then
-- GetHostByName在linux中不是线程安全的所以这里只获取一次便保存下来下次不需要再调用
addr[host] = LuaSocket:GetHostByName(host)
end
local ret = socket:connect2(addr[host], port, 3)
if ret ~= 0 then
LuaSocket:Release(socket, 1)
print(string.format("connect to host error:%s:%d, ret:%d", host, port, ret))
return "", GHC_ErrConnet
end
socket:setSendTimeout(3)
socket:setRecvTimeout(3)
local str = string.format("GET %s HTTP/1.0\r\nHost:%s\r\n\r\n", url, host)
-- print("GetContent send")
-- print(str)
ret = socket:send(str)
if ret <= 0 then
LuaSocket:Release(socket, 2)
print(string.format("send to host error:%s:%d", host, port))
return "", GHC_ErrSend
end
--print("[GetHttpContent++++++++++++++++++++++++++++6564546++++++++++:"..tostring(str) )
local content = ""
local len = 0
content, len = socket:readall(len)
if len <= 0 then
LuaSocket:Release(socket, 3)
print(string.format("recv content error:%s:%d", host, port))
return "", GHC_ErrRecv
end
local _, es = string.find(content, "\r\n\r\n")
if es ~= nil then
content = string.sub(content, es + 1)
end
-- print("GetContent recv")
-- print(content)
LuaSocket:Release(socket, 4)
--print("[GetHttpContent----------------------------------------------:"..tostring(content) )
return content, GHC_SUCCESS
end
_G.PostHttpContent2 = function(host, port, url)
if host == nil or port == nil or url == nil then
--print("[PostHttpContent2++++++++++++++++++++some nill:")
return "", -100
end
mgs = url;
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------2:"..tostring(mgs) )
--print("[PostHttpContent2++++++++++++++++++++++++++++++++++--------------1:"..tostring(url) )
local socket = LuaSocket:NewSocket()
if socket == nil then
print("create socket error!".. host)
return "", GHC_ErrCreateSocket
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------3:"..tostring(mgs) )
if addr[host] == nil then
-- GetHostByName在linux中不是线程安全的所以这里只获取一次便保存下来下次不需要再调用
addr[host] = LuaSocket:GetHostByName(host)
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------4:"..tostring(mgs) )
local ret = socket:connect2(addr[host], port, 3)
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------5:"..tostring(mgs) )
if ret ~= 0 then
LuaSocket:Release(socket, 1)
print(string.format("connect to host error:%s:%d, ret:%d", host, port, ret))
return "", GHC_ErrConnet
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------6:"..tostring(mgs) )
socket:setSendTimeout(3)
socket:setRecvTimeout(3)
local str = mgs--string.format("POST %s HTTP/1.0\r\nHost: %s\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: %d\r\n\r\n%s", url, host, string.len(mgs), mgs)
-- print("GetContent send")
-- print(str)
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------7:"..tostring(str) )
ret = socket:send(str)
if ret <= 0 then
LuaSocket:Release(socket, 2)
print(string.format("send to host error:%s:%d", host, 80))
return "", GHC_ErrSend
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------8:"..tostring(str) )
local content = ""
local len = 0
content, len = socket:readall(len)
if len <= 0 then
LuaSocket:Release(socket, 3)
print(string.format("recv content error:%s:%d", host, port))
return "", GHC_ErrRecv
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------9:"..tostring(str) )
local _, es = string.find(content, "\r\n\r\n")
if es ~= nil then
content = string.sub(content, es + 1)
end
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------10:"..tostring(mgs) )
-- print("GetContent recv")
-- print(content)
LuaSocket:Release(socket, 4)
--print("[PostHttpContent2-----+++++++++++++++++++++++++------------------11:"..tostring(str) )
--print("[GetHttpContent----------------------------------------------:"..tostring(content) )
return content, GHC_SUCCESS
end