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

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

글쓴이 : todaynogada 날짜 : 2018-03-13 (화) 17:54 조회 : 1786
글주소 : http://www.androidside.com/B49/169476
 
  벤츠 순정옵션설치 AddOn
커스텀W에서 함께하는 벤츠 순정 옵션설치, 코딩, 레트로핏, 다양한 옵션추가.
www.customw.co.kr
  MMORPG 대작, 여황제
미인과 함께 적을 섬멸하라! 탄탄한 스토리, 고퀄리티 그래픽, 현란한 스킬!
queen.topgame.kr
  여신의 탄생, 여신세계
여신들의 전쟁이 시작된다! 야구여신 조연주가 선택한 풀3D 웹 RPG 여신세계
god.noblegames.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 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기