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.

104 lines
3.3 KiB

using System;
using System.Configuration;
using System.Net.Http;
namespace BWPMWebForm.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()
{
uri = ConfigurationSettings.AppSettings["BWPMAPI"];
apikey = ConfigurationSettings.AppSettings["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.IsCompleted;
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
//{
//}
}
}
}