fixed http request halting the main thread

This commit is contained in:
Evil Factory
2021-09-23 16:09:38 -03:00
parent dac0734401
commit 1f04fea3cc

View File

@@ -461,7 +461,7 @@ namespace Barotrauma
}
#endif
public string RequestPostHTTP(string url, string data, string contentType = "application/json")
public void RequestPostHTTP(string url, object callback, string data, string contentType = "application/json")
{
try
{
@@ -472,27 +472,35 @@ namespace Barotrauma
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();
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
}), null);
}catch(Exception e)
{
return e.ToString();
env.CallFunction(callback, new object[] { e.ToString() });
}
}
public string RequestGetHTTP(string url)
public void RequestGetHTTP(string url, object callback)
{
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)
httpWebRequest.BeginGetResponse(new AsyncCallback((IAsyncResult result) =>
{
var httpResponse = httpWebRequest.EndGetResponse(result);
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
env.CallFunction(callback, new object[] { streamReader.ReadToEnd() });
}), null);
}
catch(Exception e)
{
return e.ToString();
env.CallFunction(callback, new object[] { e.ToString() });
}
}
}