총 게시물 39,226건, 최근 1 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

레트로핏 필드형태로 보낼려고하는데 계속 onFailure 로 되버려요

글쓴이 : todaynogada 날짜 : 2018-03-13 (화) 17:54 조회 : 2175
글주소 : http://www.androidside.com/B49/169476
 
  벤츠 순정옵션설치 AddOn
커스텀W에서 함께하는 벤츠 순정 옵션설치, 코딩, 레트로핏, 다양한 옵션추가.
www.customw.co.kr
  웅진책방 세계100대출판도서
미국과 영국의 어린이 독자들을 사로 잡은 과학도서, 어린이 과학 지식도움
www.woongjinbooks.com
  밀리의 서재, 첫 달 무료!
국내 최대 월정액 독서앱, 책 한 권 가격으로 3만 권을 무제한으로, 밀리의 서재
www.millie.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

안녕하세요..  레트로핏으로 안드로이드 공부중인데요..
public interface ApiInterface {

    @FormUrlEncoded
    @POST("/bbs/login_check.php")
    Call<User> contributors(@Field("mb_id") String mb_id, @Field("mb_password") String mb_password);

}

이렇게 post방식으로 로그인체크페이지로 필드값 지정해주었습니다.

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        ApiInterface retrofitService = retrofit.create(ApiInterface.class);
        Call<User> call = retrofitService.contributors(mbid,mbpw);
        call.enqueue(new Callback<User>() {
            @Override
            public void onResponse(Call<User> call, Response<User> response) {

           
                if(response.isSuccessful())
                        Log.d("로그인성공", response.body().getResponse());
              
                 if(response.body().getResponse().equals("ok2")){
                    Log.d("로그인실패", response.body().getResponse());
                }
            }

            @Override
            public void onFailure(Call<User> call, Throwable t) {
                Log.d("test","실패요");

            }

        });
    }

이것을 httpclient, HttpPost 로 통신했을땐
  httpPost.setEntity(new UrlEncodedFormEntity(postParameters));
이걸로 폼형태로 보내서 잘되었거든요...
근데 레트로핏에서는 어떻게 폼형태로 보내야할지 잘모르겠습니다..

  @FormUrlEncoded
    @POST("/bbs/login_check.php")
    Call<User> contributors(@Field("mb_id") String mb_id, @Field("mb_password") String mb_password);
여기 부분에 FormUrlEncoded 폼형태로 보낸다는 뜻이고
@field가 아이디,비번 폼 보낸다는게 아닌가요?
계속 통신에러가 나네요.



질문자가 자신의 포인트 5 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 4을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

안사 이쁜이 2018-03-13 (화) 17:54
축하드립니다. ;)
todaynogada님은 안사 이쁜이에 당첨되어 5 포인트 지급되었습니다.
에찌 2018-03-14 (수) 09:52
여러가지 이유가 있을 수 있는데 Gson 으로 바로 받게끔하셨으면 jsonSyncException 이 발생하지않았나 로그로 확인해보세요
만약 JsonArray JsonObject 머라고뜨면서 해당 Excep 이 뜨면 json 파싱모델이 잘못된겁니다. 해당 코드에서는 User 가 되겠네요
댓글주소 추천 0 반대 0
     
     
todaynogada 2018-03-14 (수) 16:26
[@에찌]감사합니다
댓글주소 추천 0 반대 0
OSKiller 2018-03-14 (수) 10:10
http://square.github.io/retrofit/
폼 형태면 멀티파트아닌가요?

onFailure인경우에 단지 "실패"라는 로그만 찍을것이 아니라
실제 어떤 에러가 발생했는지 확인 하시면 더 좋을것같습니다
댓글주소 추천 0 반대 0
     
     
todaynogada 2018-03-14 (수) 16:26
[@OSKiller]감사합니다
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기