마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

JSON파싱이용한 로그인액티비티....

0 추천

서버에서 끌어와  파싱한부분까지는 된것 같습니다... 하지만  로그인 성공/실패  처리를 어떻게해야할지 모르겠습니다.

도와주세요 ㅠㅠ

 

@NoTitle
@EActivity(R.layout.activity_main)
public class MainActivity extends Activity {
 private final String BASE_URL = "http://~~~/post/";
 @ViewById EditText id;
 @ViewById EditText pw;

  private void savePreferences(){
 //다음 Activity에서 사용할 ID, PW 저장(key, value)
   SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
   SharedPreferences.Editor editor = pref.edit();
   editor.putString("id", "id");
   editor.putString("pw", "pw");
   editor.commit();
  }
 
 @Click({R.id.join, R.id.login, R.id.forget})
 void click(View v){
  switch (v.getId()) {
  case R.id.join:
   startActivity(new Intent(getApplicationContext(), JoinFormActivity_.class));
   break;
  case R.id.login:
   String userId = id.getText().toString();
   String userPw = pw.getText().toString();
   login(userId, userPw);
   
   break;
  case R.id.forget:
   
   break;

  }
  
 }
 public void login(String id, String pw){
  String url = "login.do";
  ArrayList<NameValuePair> post = new ArrayList<NameValuePair>();
  post.add(new BasicNameValuePair("id", id));
  post.add(new BasicNameValuePair("pw", pw));
  
  postParse(post, url);
  
 }
 
 @Background
 void postParse(ArrayList<NameValuePair> post, String url){
  DefaultHttpClient client = new DefaultHttpClient();
  HttpPost httpPost = new HttpPost(BASE_URL + url);
  
  /* 타임아웃 설정 */
  HttpParams httpParams = client.getParams();
  HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
  HttpConnectionParams.setSoTimeout(httpParams, 3000);
  
  HttpResponse httpResponse;
  try {
   /* POST 파라미터를 UTF-8로 저장 */
   UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(post, "UTF-8");
   httpPost.setEntity(encodedFormEntity);
   httpResponse = client.execute(httpPost);
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
   
   String line = null;
   String result = "";
   
   while((line = bufferedReader.readLine()) != null){
    result += line;
   }
   
   Log.v("test", result);
   
   
   //시작
   //방법1
   ObjectMapper mapper = new ObjectMapper();
   Account acc = mapper.readValue(result, Account.class);
   
   //방법2
   JSONObject mainJson = new JSONObject(result);
   String id = mainJson.getString("id");
   String pw = mainJson.getString("pw");
   //끝 
   
   
   message(acc);
   
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 
 @UiThread
 void message(Account ac){

  startActivity(new Intent(getApplicationContext(), ControlActivity_.class));
  Toast.makeText(getApplicationContext(), "Login Sucess!!!!", Toast.LENGTH_LONG).show();
 }
}

 

 

sn1883 (860 포인트) 님이 2014년 8월 26일 질문

1개의 답변

+1 추천
서버에서 클라이언트로 로그인 성공여부 결과값도 보내서 그 값을 확인하면 될 거 같네요~
노예의집 (23,370 포인트) 님이 2014년 8월 27일 답변
해결했습니다 감사해여~
...