Esempio n. 1
0
        private async Task <T> SendAsync <T>(string url, HttpMethod method, IAuthyHttpClientRequest model = null) where T : AuthyResponse
        {
            using (var httpClient = new HttpClient())
            {
                var request = new HttpRequestMessage()
                {
                    RequestUri = new Uri(url),
                    Method     = method
                };
                request.Headers.Add("X-Authy-API-Key", apiKey);
                request.Headers.Add("User-Agent", GetUserAgent());

                if (model != null)
                {
                    request.Content = model.ToFormContent();
                }

                var httpResponse = await httpClient.SendAsync(request);

                var httpResponseBody = await httpResponse.Content.ReadAsStringAsync();

                var authyResponse = JsonConvert.DeserializeObject <T>(httpResponseBody);
                switch (httpResponse.StatusCode) // TODO: SH - Redo this for all status code not just those handled by Authy.NET
                {
                case HttpStatusCode.ServiceUnavailable:
                    authyResponse.Status = AuthyStatus.ServiceUnavailable;
                    break;

                case HttpStatusCode.Unauthorized:
                    authyResponse.Status = AuthyStatus.Unauthorized;
                    break;

                case HttpStatusCode.BadRequest:
                    authyResponse.Status = AuthyStatus.BadRequest;
                    break;
                }
                return(authyResponse);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// POST HTTP Method
 /// </summary>
 /// <typeparam name="T">Type of Response</typeparam>
 /// <param name="uri">URI of Resource</param>
 /// <param name="model">Request Model to Post</param>
 /// <returns>Response</returns>
 public async Task <T> PostAsync <T>(string uri, IAuthyHttpClientRequest model) where T : AuthyResponse
 {
     return(await SendAsync <T>(baseUrl + uri, HttpMethod.Post, model));
 }