728x90
728x170
■ HttpClient 클래스에서 다운로드 중 에러 발생으로 재시도시 지연 시간를 늘리는 방법을 보여준다.
▶ 예제 코드 (C#)
using System;
using System.Net.Http;
using System.Threading.Tasks;
#region 문자열 다운로드하기 (비동기) - DownloadStringAsync(httpClient, uri)
/// <summary>
/// 문자열 다운로드하기 (비동기)
/// </summary>
/// <param name="httpClient">HTTP 클라이언트</param>
/// <param name="uri">URI</param>
/// <returns>문자열 태스크</returns>
public async Task<string> DownloadStringAsync(HttpClient httpClient, string uri)
{
TimeSpan nextDelayTimeSpan = TimeSpan.FromSeconds(1);
for(int i = 0; 1 != 3; i++)
{
try
{
return await httpClient.GetStringAsync(uri);
}
catch
{
}
await Task.Delay(nextDelayTimeSpan);
nextDelayTimeSpan = nextDelayTimeSpan + nextDelayTimeSpan;
}
return await httpClient.GetStringAsync(uri);
}
#endregion
728x90
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] Assembly 클래스 : GetModules 메소드를 사용해 모듈 정보 구하기 (0) | 2021.07.06 |
---|---|
[C#/COMMON] Assembly 클래스 : ManifestModule 속성을 사용해 메니페스트 모듈의 플랫폼 대상 구하기 (0) | 2021.07.06 |
[C#/COMMON] TargetFrameworkAttribute 클래스 : 닷넷 프레임워크 파일 여부 구하기 (0) | 2021.07.06 |
[C#/COMMON] PE(Portabl Executable) 파일 버전 구하기 (0) | 2021.07.06 |
[C#/COMMON/.NET5] CancellationTokenSource 클래스 : 지정 시간 이후 취소하는 토큰 소스 생성하기 (0) | 2021.06.26 |
[C#/COMMON] 누겟 설치 : System.Collections.Immutable (0) | 2021.06.26 |
[C#/COMMON] 누겟 설치 : System.Threading.Channels (0) | 2021.06.26 |
[C#/COMMON] 누겟 설치 : System.Reactive (0) | 2021.06.26 |
[C#/COMMON] Task 클래스 : Delay 정적 메소드를 사용해 1초 대기하기 (0) | 2021.06.26 |
[C#/COMMON] SerialPort 클래스 : 유진시스텍 YJ-730T 키오스크 프린터 사용하기 (0) | 2021.06.20 |