Notice
Recent Posts
Recent Comments
Link
투케이2K
823. (Android/Java) [간단 소스] AsyncHttpClient (loopj) 라이브러리 http 요청 onRetry 재요청 시도 카운트 확인 본문
Android
823. (Android/Java) [간단 소스] AsyncHttpClient (loopj) 라이브러리 http 요청 onRetry 재요청 시도 카운트 확인
투케이2K 2024. 8. 1. 20:53[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java / Kotlin
[소스 코드]
try {
// --------------------------------------------------------
// TODO [AsyncHttpClient 라이브러리 버전] : implementation 'com.loopj.android:android-async-http:1.4.9'
// --------------------------------------------------------
// --------------------------------------------------------
// TODO [URL 정의]
// --------------------------------------------------------
String url = "https://jsonplaceholder.typicode.com/posts";
// --------------------------------------------------------
// TODO [AsyncHttpClient 객체 정의 및 타임 아웃 시간 설정]
// --------------------------------------------------------
AsyncHttpClient client = new AsyncHttpClient();
client.setTimeout(5000);
client.setMaxRetriesAndTimeout(2, 1000); // TODO [재요청 시도 횟수 지정 및 딜레이 시간]
// --------------------------------------------------------
// TODO [request 요청 헤더 요청 값 정의]
// --------------------------------------------------------
String contentType = "application/json";
client.addHeader("Content-type", contentType); // TODO [헤더 값 추가]
client.addHeader("Authorization", "Bearer"); // TODO [헤더 값 추가]
// --------------------------------------------------------
// TODO [Body Json 전송값 정의]
// --------------------------------------------------------
String jsonString = "{\"userId\":1, \"id\":1}";
// --------------------------------------------------------
// TODO [StringEntity 객체 정의]
// --------------------------------------------------------
StringEntity entity = new StringEntity(String.valueOf(jsonString));
// --------------------------------------------------------
// TODO [Request 요청 수행]
// --------------------------------------------------------
client.post(A_Intro.this, url, entity, contentType, new AsyncHttpResponseHandler() {
//TODO [웹요청 시작]
@Override
public void onStart() {
S_Log._F_(A_Intro.this, "AsyncHttpClient :: HTTP 통신 POST [요청] 수행", new String[]{
"URL : " + String.valueOf(url),
"DATA : " + String.valueOf(jsonString)
});
}
//TODO [재시도 확인]
@Override
public void onRetry(int retryNo) {
super.onRetry(retryNo);
C_Ui_View.toastLongNormal(A_Intro.this, "RETRY : " + String.valueOf(retryNo));
}
//TODO [웹요청 성공]
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
String responseData = String.valueOf(new String(response));
S_Log._F_(A_Intro.this, "AsyncHttpClient :: HTTP 통신 POST [응답] 확인", new String[]{
"URL : " + String.valueOf(url),
"STATUS_CODE : " + String.valueOf(statusCode),
"DATA : " + String.valueOf(responseData)
});
}
//TODO [웹요청 실패]
@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable throwable) {
S_Log._F_(A_Intro.this, "AsyncHttpClient :: HTTP 통신 POST [에러] 발생", new String[]{
"URL : " + String.valueOf(url),
"STATUS_CODE : " + String.valueOf(statusCode),
"ERROR : " + String.valueOf(throwable.getMessage())
});
}
});
}
catch (Exception e){
e.printStackTrace();
}
반응형
'Android' 카테고리의 다른 글
Comments