<uses-permission android:name="android.permission.INTERNET" />
implementation 'com.squareup.retrofit2:retrofit:2.7.2'
implementation 'com.squareup.retrofit2:converter-gson:2.7.2'
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://10.0.2.2:5000/api/") // base_url
.addConverterFactory(GsonConverterFactory.create())
.build();
**127.0.0.1
이 10.0.2.2
로 바뀌어서 사용**된다! 유의하기interface SignUpService {
@POST("signup/id-check") // URL
Call<ResponseBody> checkId(@Body JsonObject body);
}
JSONObjecy
를 사용하면 포맷이 달라 오류가 나니 gson에서 제공하는 JsonObject
를 사용한다.SignUpService service = retrofit.create(SignUpService.class);
Call<ResponseBody> call = service.checkId(body);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {
// 성공했을 때 (이 안에서 자유롭게 사용하기)
try {
Log.d(TAG, response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
else {
try {
Log.d(TAG, "Fail " + response.errorBody().string());
} catch (IOException e)
e.printStackTrace();
}
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
// 실패했을 때
Log.e(TAG, "onFailure: e " + t.getMessage());
}
}
);
string
타입이라 자유롭게 사용하기 번거로우므로 JsonObejct
타입으로 파싱해서 사용한다.JsonParser instance 생성
JsonParser jsonParser = new JsonParser();
파싱하기
JsonObject res = (JsonObject) jsonParser.parse(response.body().string());
이제 JSON 포맷으로 바뀌어 자유롭게 활용할 수 있다.