제가 지금 서버를 통해서 로그인을 하려고 합니다... 아이디, 비밀번호가 맞으면 리턴값으로 서버에서 'OK'이 오거든요?
그래서 제가 if문을 써서 리턴 값이 OK이면 다음 액티비티로 넘기려고하는데 문제가 있네요 ㅠㅠㅠ 일단 제 소스는
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomTask task = new CustomTask();
task.execute(edt1.getText().toString(), edt2.getText().toString());
String data = String.valueOf(1); //여기 부분이에요 제가 하려는게 리턴 값이 1이여서 int인 것 같아 String으로 바꾸고 비교하려고합니다.
여기서 안됩니다...ㅠㅠ 뭐가 잘못 된거지 모르겠어요 제발 알려주세요....통신은 잘되는것 같아요..
if (receiveMsg == data){
Toast.makeText(getApplicationContext(), "로그인 성공", Toast.LENGTH_LONG).show();
Intent i = new Intent(getApplicationContext(), Main2Activity.class);
startActivity(i);
}
else{
Toast.makeText(getApplicationContext(),"ID 및 Password를 확인하십시오", Toast.LENGTH_LONG).show();
}
}
});
}
class CustomTask extends AsyncTask<String, Void, String> {
String sendMsg;
@Override
protected String doInBackground(String... strings) {
try {
String str;
URL url = new URL("주소자리에요 잠시 가려놓았습니다.");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestMethod("POST");//데이터를 POST 방식으로 전송합니다.
OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
sendMsg = "user_id="+strings[0]+"&user_pw="+strings[1];//보낼 정보인데요. GET방식으로 작성합니다. ex) "id=rain483&pwd=1234";
//회원가입처럼 보낼 데이터가 여러 개일 경우 &로 구분하여 작성합니다.
osw.write(sendMsg);//OutputStreamWriter에 담아 전송합니다.
osw.flush();
//jsp와 통신이 정상적으로 되었을 때 할 코드들입니다.
if(conn.getResponseCode() == conn.HTTP_OK) {
InputStreamReader tmp = new InputStreamReader(conn.getInputStream(), "UTF-8");
BufferedReader reader = new BufferedReader(tmp);
StringBuffer buffer = new StringBuffer();
//jsp에서 보낸 값을 받겠죠?
while ((str = reader.readLine()) != null) {
buffer.append(str);
}
receiveMsg = buffer.toString();
Log.i("통신 결과", receiveMsg);
} else {
Log.i("통신 결과", conn.getResponseCode()+"에러");
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return receiveMsg;
}
}