此部分函数可以用于发起网络请求。
关于同步和异步
同步指的是在代码执行过程中,会等待网络请求完成才继续下一步,而异步是在发送网络请求之后直接开始往下执行,当请求完成了再调用回调函数来取得执行结果,您应该根据自己的业务需求选择同步或者异步。以下是同步和异步的例子:
同步请求:
local result = ZeroDream.Http.Sync({ url = "https://www.baidu.com/" })
print(result.data)
print("这句话会在显示完网页结果之后才出现")
异步请求:
ZeroDream.Http.Async({ url = "https://www.baidu.com/" }, function(result)
print(result.data)
end)
print("这句话会显示在网页结果前面")
Http.Sync
函数作用:发起同步阻塞的网络请求
基本构造:ZeroDream.Http.Sync( config )
示例代码:
local result = ZeroDream.Http.Sync({
url = "https://www.baidu.com/",
method = "GET",
headers = {
["Content-Type"] = "application/json",
}
})
print(result.data)
Http.Async
函数作用:发起异步非阻塞的网络请求
基本构造:ZeroDream.Http.Async( config, callbackHandler )
示例代码:
ZeroDream.Http.Async({
url = "https://www.baidu.com/",
method = "GET",
headers = {
["Content-Type"] = "application/json",
}
}, function(result)
print(result.data)
end)
Config 完整参数
以下是 config 的完整参数列表
config = {
-- 请求地址
url = "https://www.baidu.com/",
-- 请求方式,提交表单一般是 POST
method = "POST",
-- 请求头,格式是 table
headers = {
["Content-Type"] = "application/json",
["User-Agent"] = "FXServer/1.0",
},
-- 是否是 JSON 请求
isJson = false,
-- 请求内容,当 isJson 为 true 时,此处应传入字符串格式的数据,正常提交表单时此处应传入 table 格式的数据
data = {
key1 = "value1",
key2 = "value2",
}
}
请求响应内容
以下是请求返回的数据结构
response = {
status = 200, -- 状态码
data = "Hello World", -- 数据正文
headers = { -- 响应头
["Content-Type"] = "application/json",
},
error = "" -- 请求失败时(状态码非 200)会返回错误信息
}