Esempio n. 1
0
        /// <summary>
        /// 呼び出し
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="url"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public virtual async Task <dynamic> Call <T>(string url, HttpContent content)
        {
            try
            {
                HttpClient          client   = HttpClientManager.GetHttpClient(url, HttpClientManager.ClientAcceptType.Default, AuthenticationData);
                HttpResponseMessage response = await client.PostAsync(url, content);

                if (response.IsSuccessStatusCode)
                {
                    dynamic responseContent = await this.GetResponseData <T>(response);

                    return(responseContent);
                }
                else
                {
                    // トークンエラーの場合情報更新
                    if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                    {
                        await ResetHttpClient(url, HttpClientManager.ClientAcceptType.Default);
                    }
                    return(null);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        /// <summary>
        /// 呼び出し
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="url"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public virtual async Task <dynamic> Call <T>(string url)
        {
            try
            {
                HttpClient          client   = HttpClientManager.GetHttpClient(url, HttpClientManager.ClientAcceptType.Default, AuthenticationData);
                HttpResponseMessage response = await client.DeleteAsync(url);

                if (response.IsSuccessStatusCode)
                {
                    // 結果データなし
                }
                else
                {
                    // トークンエラーの場合情報更新
                    if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                    {
                        await ResetHttpClient(url, HttpClientManager.ClientAcceptType.Default);
                    }

                    // リトライ
                    if (RetryCount < MAX_RETRY_COUNT)
                    {
                        RetryCount++;
                        return(await Call <T>(url));
                    }
                }

                return(response.StatusCode);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// HttpClient設定を再設定
        /// </summary>
        /// <param name="url"></param>
        /// <param name="type"></param>
        protected async Task <bool> ResetHttpClient(string url, HttpClientManager.ClientAcceptType type)
        {
            HttpClientManager.UpdateAuthorizationHeader(url, type, AuthenticationData);
            await Task.Delay(delay);

            return(false);
        }
        /// <summary>
        /// 呼び出し
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="url"></param>
        /// <returns></returns>
        public override async Task <dynamic> Call <T>(string url)
        {
            try
            {
                HttpClient          client   = HttpClientManager.GetHttpClient(url, HttpClientManager.ClientAcceptType.Default, AuthenticationData);
                HttpResponseMessage response = await client.GetAsync(url);

                if (response.IsSuccessStatusCode)
                {
                    var stream = await response.Content.ReadAsStreamAsync();

                    return(stream);
                }
                else
                {
                    // トークンエラーの場合情報更新
                    if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                    {
                        await ResetHttpClient(url, HttpClientManager.ClientAcceptType.Default);
                    }

                    // リトライ
                    if (RetryCount < MAX_RETRY_COUNT)
                    {
                        RetryCount++;
                        return(await Call <T>(url));
                    }
                    return(null);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }