http request support

This commit is contained in:
Evil Factory
2021-08-20 21:11:45 -03:00
parent 1ff03398d6
commit 5d75b1c6f1
2 changed files with 50 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ using Barotrauma.Networking;
using System.Threading.Tasks;
using Barotrauma.Items.Components;
using System.IO;
using System.Net;
namespace Barotrauma
{
@@ -418,6 +419,51 @@ namespace Barotrauma
}
}
private class LuaNetworking
{
public LuaSetup env;
public LuaNetworking(LuaSetup e)
{
env = e;
}
public string RequestPostHTTP(string url, string data, string contentType = "application/json")
{
try
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = contentType;
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
streamWriter.Write(data);
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
return streamReader.ReadToEnd();
}catch(Exception e)
{
return e.ToString();
}
}
public string RequestGetHTTP(string url)
{
try
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
return streamReader.ReadToEnd();
}catch(Exception e)
{
return e.ToString();
}
}
}
// hooks:
// chatMessage
// think

View File

@@ -125,6 +125,7 @@ namespace Barotrauma
UserData.RegisterType<LuaRandom>();
UserData.RegisterType<LuaTimer>();
UserData.RegisterType<LuaFile>();
UserData.RegisterType<LuaNetworking>();
UserData.RegisterType<Vector2>();
UserData.RegisterType<Vector3>();
UserData.RegisterType<Vector4>();
@@ -161,7 +162,8 @@ namespace Barotrauma
UserData.RegisterType<StatusEffect>();
UserData.RegisterType<CustomInterface.CustomInterfaceElement>();
UserData.RegisterType<FireSource>();
lua = new Script(CoreModules.Preset_SoftSandbox | CoreModules.LoadMethods);
lua.Options.DebugPrint = PrintMessage;
@@ -178,6 +180,7 @@ namespace Barotrauma
lua.Globals["Random"] = new LuaRandom();
lua.Globals["Timer"] = new LuaTimer(this);
lua.Globals["File"] = UserData.CreateStatic<LuaFile>();
lua.Globals["Networking"] = new LuaNetworking(this);
lua.Globals["WayPoint"] = UserData.CreateStatic<WayPoint>();
lua.Globals["SpawnType"] = UserData.CreateStatic<SpawnType>();
lua.Globals["ChatMessageType"] = UserData.CreateStatic<ChatMessageType>();