· 6 years ago · Aug 19, 2019, 07:38 AM
1public class HarooApi
2{
3 const string BaseUrl = "https://domain.here";
4
5 readonly string _accountSid;
6 readonly string _secretKey;
7
8 public HarooApi(string accountSid, string secretKey)
9 {
10 _accountSid = accountSid;
11 _secretKey = secretKey;
12 }
13
14 public void ExecuteAndGetContent(RestRequest request, Action<string> callback)
15 {
16 var client = new RestClient();
17 client.BaseUrl = BaseUrl;
18 client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey);
19 request.AddParameter("AccountSid", _accountSid, ParameterType.UrlSegment);
20 client.ExecuteAsync(request, response =>
21 {
22 callback(response.Content);
23 });
24 }
25
26 public void ExecuteAndGetMyClass(RestRequest request, Action<MyClass> callback)
27 {
28 var client = new RestClient();
29 client.BaseUrl = BaseUrl;
30 client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey);
31 request.AddParameter("AccountSid", _accountSid, ParameterType.UrlSegment);
32 client.ExecuteAsync<MyClass>(request, (response) =>
33 {
34 callback(response.Data);
35 });
36 }
37}
38
39//
40public async Task<T> ExecuteAsync<T>(RestRequest request) where T : new()
41{
42 var client = new RestClient();
43 client.BaseUrl = BaseUrl;
44 client.Authenticator = new HttpBasicAuthenticator(_accountSid, _secretKey);
45 request.AddParameter("AccountSid", _accountSid, ParameterType.UrlSegment);
46 IRestResponse<T> response = await client.ExecuteTaskAsync<T>(request);
47 return response.Data;
48}