2023-03-21 09:59:44 +01:00
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Net;
|
2023-03-21 11:34:57 +01:00
|
|
|
|
using System.Net.Http;
|
2023-03-21 09:59:44 +01:00
|
|
|
|
using models;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace utils
|
|
|
|
|
{
|
|
|
|
|
public class Api<T>
|
|
|
|
|
{
|
|
|
|
|
public static String API_URL = "https://iot.epi.cb85.software";
|
2023-03-21 11:34:57 +01:00
|
|
|
|
public static int API_TIMEOUT = 10000;
|
2023-03-21 09:59:44 +01:00
|
|
|
|
|
|
|
|
|
public static HttpWebRequest createClient(String suffix) {
|
|
|
|
|
return (HttpWebRequest)WebRequest.Create(API_URL + suffix);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-21 11:34:57 +01:00
|
|
|
|
public static T get(String suffix, String token)
|
2023-03-21 09:59:44 +01:00
|
|
|
|
{
|
|
|
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(API_URL + suffix);
|
|
|
|
|
request.Accept = "application/json";
|
2023-03-21 11:34:57 +01:00
|
|
|
|
request.Method = "GET";
|
|
|
|
|
request.Headers.Add("Authorization", token);
|
|
|
|
|
request.Timeout=API_TIMEOUT;
|
2023-03-21 09:59:44 +01:00
|
|
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|
|
|
|
if (response == null)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("Response is null");
|
|
|
|
|
}
|
|
|
|
|
StreamReader reader = new StreamReader(response.GetResponseStream());
|
|
|
|
|
string jsonResponse = reader.ReadToEnd();
|
|
|
|
|
T responseData = JsonUtility.FromJson<T>(jsonResponse);
|
2023-03-21 11:34:57 +01:00
|
|
|
|
response.Close();
|
2023-03-21 09:59:44 +01:00
|
|
|
|
return responseData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static T post(String suffix, String body)
|
|
|
|
|
{
|
|
|
|
|
HttpWebRequest request = createClient(suffix);
|
|
|
|
|
request.ContentType = "application/json";
|
|
|
|
|
request.Method = "POST";
|
2023-03-21 11:34:57 +01:00
|
|
|
|
request.Timeout=API_TIMEOUT;
|
2023-03-21 09:59:44 +01:00
|
|
|
|
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
|
|
|
|
|
{
|
|
|
|
|
streamWriter.Write(body);
|
2023-03-21 11:34:57 +01:00
|
|
|
|
streamWriter.Flush();
|
|
|
|
|
streamWriter.Close();
|
2023-03-21 09:59:44 +01:00
|
|
|
|
}
|
|
|
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
|
|
|
|
StreamReader reader = new StreamReader(response.GetResponseStream());
|
|
|
|
|
string jsonResponse = reader.ReadToEnd();
|
|
|
|
|
T responseData = JsonUtility.FromJson<T>(jsonResponse);
|
2023-03-21 11:34:57 +01:00
|
|
|
|
response.Close();
|
2023-03-21 09:59:44 +01:00
|
|
|
|
return responseData;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|