Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- rxjava disposable
- 서비스 vs 쓰레드
- jvm 작동 원리
- 클래스
- rxjava hot observable
- Rxjava Observable
- 플러터 설치 2022
- android retrofit login
- 2022 플러터 안드로이드 스튜디오
- 스택 큐 차이
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
- 안드로이드 레트로핏 사용법
- ar vr 차이
- 안드로이드 os 구조
- 객체
- jvm이란
- 안드로이드 유닛테스트란
- ANR이란
- 서비스 쓰레드 차이
- 안드로이드 레트로핏 crud
- 2022 플러터 설치
- 자바 다형성
- 안드로이드 유닛 테스트 예시
- 큐 자바 코드
- rxjava cold observable
- 멤버변수
- 스택 자바 코드
- android ar 개발
- 안드로이드 라이선스 종류
Archives
- Today
- Total
나만을 위한 블로그
[Android] 레트로핏2.x에서 response를 String으로 받아오는 법 본문
728x90
반응형
먼저 앱 수준 gradle에 레트로핏 의존성이 있어야 한다. 그 중 이 의존성이 필요하다.
implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'
그 다음 new Retrofit.Builder() 뒤에 이 컨버터 팩토리를 붙여야 한다
.addConverterFactory(ScalarsConverterFactory.create())
난 레트로핏 객체를 리턴하는 함수를 이렇게 설정했다.
public static Retrofit getStringApiClient()
{
Gson gson = new GsonBuilder()
.setLenient()
.create();
if (retrofit == null)
{
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(new NullOnEmptyConverterFactory())
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
그리고 사용은 이렇게 했다.
public void getMsg(String msg)
{
ApiInterface apiInterface = ApiClient.getStringApiClient().create(ApiInterface.class);
Call<String> call = apiInterface.getMsg(msg);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response)
{
if (response.isSuccessful() && response.body() != null)
{
Log.e("String 결과값", "response.body().toString() : " + response.body().toString());
}
}
@Override
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t)
{
Log.e(TAG, t.getLocalizedMessage());
}
});
}
인터페이스에서 정의한 함수와 액티비티에서 사용하는 함수간에 아다리가 맞아야 하는 것에 주의하자.
Call<String>이 아니라 Call<List<XXX>>형태로 Call 객체를 호출한다거나, Call<클래스명>의 형태로 Call 객체를 호출하지 말아야 한다. 이렇게 했다간 바로 빨간맛이 나온다. 빠빠빨간맛
다 설정해줬으면 로그를 통해서 결과값을 원하는 대로 받아왔는지 확인한다.
반응형
'Android' 카테고리의 다른 글
[Android] FCM 푸시 알림 보내는 법(+PHP에서 cURL 라이브러리 써서 FCM 푸시 알림 보내는 법) (0) | 2020.05.25 |
---|---|
[Android] 파이어베이스 연동 시 '앱을 실행하여 설치 확인'이 진행되지않는 에러 해결 (0) | 2020.05.25 |
[Android] 레트로핏 사용 중 end of input at line 1 column 1 path $ 에러 해결 (코틀린 버전 첨부) (0) | 2020.05.19 |
[Android] Resources$NotFoundException: String resource ID #0x1 에러 해결 (0) | 2020.05.13 |
[Android] Volley를 이용한 회원가입, 로그인 기능 구현 2편(with MySQL, PHP) (0) | 2020.04.30 |
Comments