如何使用HTTP:PostAsync()将JSON数据提交到服务器?(ROBLOX)
2020-4-3 3:15:45
收藏:0
阅读:295
评论:1
我知道如何使用GetAsync,我的服务器上的脚本可以完成我需要完成的任务。但是我不知道如何将数据发送到服务器而不是从JSON中读取数据。在服务器端,我的PHP脚本从提交的JSON中获取所有的POST数据并检查包含所有信息的数据库,如果没有找到,就插入数据(这是一个禁止系统)。但我不确定是否已正确设置roblox方面或服务器方面的设置。以下是我的代码:
这是在Custom Adonis Admin System中运行的
SendWebBan = function(plr,UserID,Username,Agent,Comment)
local http = game:GetService("HttpService")
local Reason = "Banned in game by AAC Admin."
local url = "这里是URL/gamebanlistener.php"
local data = {
["UserID"] = UserID,
["Username"] = Username,
["Agent"] = Agent,
["Reason"] = Reason,
["Comment"] = Comment
}
local encode = http:JSONEncode(data)
local reponse,err = pcall(function()
http:PostAsync(url,encode)
end)
print(reponse)
if reponse == "false" then
Remote.MakeGui(plr,"Notification",{
Title = "Failed";
Message = "Ban Failed";
Duration = 10;
})
elseif reponse == "true" then
Remote.MakeGui(plr,"Notification",{
Title = "Success";
Message = "Ban Successful";
Duration = 10;
})
else
Remote.MakeGui(plr,"Notification",{
Title = "Failed";
Message = "Ban Failed";
Duration = 10;
})
end
end;
<?php
$ServerKey = "这里是key";
$APIKey = $_POST["key"];
$Data = json_decode($_POST['data']);
$UserID = $Data.UserID;
$Username = $Data.Username;
$Agent = $Data.Agent;
$Reason = $Data.Reason;
$Comment = $Data.Comment;
$Date = date("d/m/Y");
if($APIKey == $ServerKey){
//$conn = mysqli_connect($host,$dbuser,$dbpassword,$db);
$Connection = mysqli_connect(sql credentials here);
if($Connection->connect_errno)
{
echo('{"Status":"'. $Connection->connect_errno . '"}');
}else {
$BlacklResult = $Connection->query("SELECT * FROM bans"); //Blacklist is the name of my Bans database
if($BlacklResult->num_rows > 0)
{
while($Row = $BlacklResult->fetch_assoc()){
if($Row != null){
if($Row["UserID"] == $UserID){
echo 'Status:false';
return;
}else{
$Connection->query("INSERT INTO bans(UserID, Username, Agent, BanReason, BanComment,DateOfBan) VALUES(".$UserID.",".$Username.",".$Agent.",".$Reason.",".$Comment.",".$Date.");");
echo 'Status:true';
}
};
};
};
};
}else {
echo('{"Status":"API KEY"}');
};
?>
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

当你使用
pcall函数调用一个函数时,返回的元组包含一个布尔值和该函数的结果。如果该函数抛出一个错误,则结果将被替换为错误字符串。尝试做出以下更改:local success, result = pcall(function() return http:PostAsync(url,encode) end) print(success, result) if success then -- 请求成功,解析终点返回的响应 else -- 解析 HTTP 错误 end