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.
112 lines
3.6 KiB
112 lines
3.6 KiB
using MyModels;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using System.Net.Http.Formatting;
|
|
using System.Threading.Tasks;
|
|
using sf1.Models;
|
|
|
|
namespace sf1.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>();
|
|
|
|
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
|
|
//{
|
|
|
|
//}
|
|
}
|
|
}
|
|
}
|