본문 바로가기
  • Where there is a will there is a way.
개발/kotlin

Retrofit2 데이터 spring framework와 연동

by 소확행개발자 2018. 10. 12.

여러 자료를 참고했는데 ㅠㅜ spring과 android 모두 초보라서 굉장히 애먹었고 json으로 데이터를 전환하는 과정에서 간단히 하느라 애먹었습니다...

  1. interface 부분
@GET("site/check")
    Call<SiteData> siteCheck(
            @Query("sitename") String sitename
    );

데이터 전송은 @GET방식으로 넘겼고 @Path 방식과 @Query 방식중에 보낼 url중 /site/check?sitename="test" 형식으로 넘겼습니다.

 

2. sitedata부분

@SerializedName("siteid")
public int siteid;

@SerializedName("sitename")
public String sitename;

안드로이드는 json 형식을 gson이 serialize 방법으로 쉽게 해주는? 느낌으로 알고있음 으로 인해서 서버에서 응답받은 가령 siteid가 있다면 그것을 쉽게 받아준다.

그런 다음에 getter 와 setter로 선언해주면 된다.

3. 적용할 class 부분

 Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.0.12:8080/safetyapp/")
.addConverterFactory(GsonConverterFactory.create())
.build();
 SiteInterface siteInterface = retrofit.create(SiteInterface.class);
 Call<SiteData> call = siteInterface.siteCheck(selectspinner);
 call.enqueue(new Callback<SiteData>() {
     @Override
     public void onResponse(Call<SiteData> call, Response<SiteData> response) {
     SiteData siteData = (SiteData)response.body();

     final EditText passText1 = (EditText)findViewById(R.id.siteNum);
     siteNum = passText1.getText().toString();
     String sitenum = siteData.getSitenum();
     if(!sitenum.equals(siteNum)){
           checkdialog(MainActivity.this, "인증번호가 틀립니다.");
      }else{

      // 눌럿을때 반응
      Intent main2 = new Intent(MainActivity.this, MainActivity2.class);
       main2.putExtra("name",selectspinner);
       startActivity(main2);

        }

      }

       @Override
        public void onFailure(Call<SiteData> call, Throwable t) {
        checkdialog(MainActivity.this, t.getMessage());
        }
     });

4. spring

'개발 > kotlin' 카테고리의 다른 글

안드로이드 코틀린 시작하기  (0) 2018.09.22

댓글