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.

109 lines
3.5 KiB

using System;
using System.Net.Http;
using System.Net.Http.Json;
namespace BlazorApp.Helper
{
public class HttpClientHelper
{
string apikey = "";
public class DataStore<T>
{
//public T Data { get; set; }
public string daten { get; set; }
public bool resultstatus { get; set; }
public string resultstatuscode { get; set; }
}
public HttpResponseMessage ResponsTask;
public HttpResponseMessage ResponsResult;
public DataStore<object> Results = new DataStore<object>();
public string BaseAPI = "";
string uri = "";
public HttpClientHelper()
{
Helper.ParameterHelper ph = new Helper.ParameterHelper();
uri = ph.GetParameter("API");
apikey = ph.GetParameter("ApiKey");
}
public void CallService(string api, string key, string fnkt, Object daten)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(uri);
client.DefaultRequestHeaders.Add("ApiKey", apikey);
switch (fnkt)
{
case "GET":
if (key!="")
{
api = api+ "/" + key;
}
var responseTask = client.GetAsync(api);
responseTask.Wait();
var result = responseTask.Result;
Results.resultstatus = responseTask.IsCompletedSuccessfully;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadAsStringAsync();
readTask.Wait();
//DataStore<object> ds = new DataStore<object>();
Results.daten = readTask.Result;
break;
}
break;
case "PUT":
if (key != "")
{
api = api+ "/" + key;
}
var response = client.PutAsJsonAsync(api, daten).Result;
Results.resultstatuscode = response.StatusCode.ToString();
break;
case "POST":
var postresponse = client.PostAsJsonAsync(api, daten).Result;
Results.resultstatuscode = postresponse.StatusCode.ToString();
break;
case "DELETE":
if (key != "")
{
api = api + "/" + key;
}
var deleteresponse = client.DeleteAsync(api).Result;
Results.resultstatuscode = deleteresponse.StatusCode.ToString();
break;
default:
break;
}
// var responseTask = client.GetAsync("user");
//responseTask.Wait();
//var result = responseTask.Result;
//if (result.IsSuccessStatusCode)
//{
// var readTask = result.Content.ReadAsStringAsync();
// readTask.Wait();
// DataStore<object> ds = new DataStore<object>();
// ds.Data = readTask;
//}
//else
//{
//}
}
}
}