58 lines
2.1 KiB
C#
Raw Permalink Normal View History

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;
}
}
}