You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EPAServeur.BDAccess
|
|
{
|
|
public class APIAccess
|
|
{
|
|
private static APIAccess instance = null;
|
|
private string serveur = "http://localhost:3000";
|
|
|
|
private APIAccess()
|
|
{
|
|
|
|
}
|
|
|
|
public static APIAccess getInstance()
|
|
{
|
|
return instance;
|
|
}
|
|
|
|
public static List<T> requestGetAPI<T>(string query)
|
|
{
|
|
if (instance == null)
|
|
{
|
|
instance = new APIAccess();
|
|
}
|
|
|
|
List<T> result = new List<T>();
|
|
WebClient client = new WebClient();
|
|
result = JsonSerializer.Deserialize<List<T>>(client.DownloadString(instance.serveur+query));
|
|
|
|
return result;
|
|
}
|
|
public static List<T> requestPostAPI<T>(string query, List<KeyValuePair<string, string>> postParam = null)
|
|
{
|
|
if (instance == null)
|
|
{
|
|
instance = new APIAccess();
|
|
}
|
|
|
|
List<T> result = new List<T>();
|
|
WebClient client = new WebClient();
|
|
client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
|
|
if (postParam != null)
|
|
{
|
|
foreach (KeyValuePair<string, string> arg in postParam)
|
|
{
|
|
client.QueryString.Add(arg.Key, arg.Value);
|
|
}
|
|
}
|
|
|
|
try
|
|
{
|
|
var data = client.UploadValues(query, "POST", client.QueryString);
|
|
result = JsonSerializer.Deserialize<List<T>>(UnicodeEncoding.UTF8.GetString(data));
|
|
}
|
|
catch
|
|
{
|
|
result = null;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
}
|
|
}
|
|
|