안드로이드 개발 질문/답변
(글 수 45,052)
String uri = SERVER_ADDRESS + "phonenum_search.php?phonenum=" + URLEncoder.encode(UserPhoneNum, "UTF-8");
HttpGet get = new HttpGet(uri);
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity resEntity = response.getEntity();
InputStream im = resEntity.getContent();
byte[] buffer = new byte[1024];
ByteArrayOutputStream content = new ByteArrayOutputStream();
int readBytes =0;
while ((readBytes = im.read(buffer)) != -1) {
content.write(buffer, 0, readBytes);
}
String str = new String(content.toByteArray());
str = str.trim();
Log.i("MYSQL", str);
if (str.equals("false") == true) {
Log.i("MYSQL", "ㄴㄴㄴㄴㄴㄴ");
}else{
Log.i("MYSQL", "ㅅㅅㅅㅅㅅㅅㅅ");
}
}
안드로이드 부분 소스 코드입니다. 특별한 부부은 존재하지 않고 Get 방식으로 http 프로토콜을 사용하여 Server에 데이터를 전송하고,
다시 php에서 echo로 출력한 데이터를 받아오게 됩니다.
$query = "SELECT * FROM userlist WHERE phone_number='$id';";
$query_result = mysql_query($query) or die("query failed");
while($obj = mysql_fetch_object($query_result))
{
$return_id = $obj->phone_number; // DB에 저장된 column 값으로 받아온다.
}
if(!empty($return_id)){
echo $return_id;
}else {
echo 'false';
}
Get 방식으로 전달된 데이터를 얻어서 MySql 데이터 베이스에서 검색해서 해당 결과를 echo로 출력하여 Android에서 얻어 옵니다.!
이때!!!!!! Log를 찍어보면 분명히 'false'값이 출력되는데!!!!!
if(str.equals("false") == true)는 절대로 먹질 않네요.. 계속 else로 빠져나가요..
아 왜이런건가요 ㅋㅋ
2012.10.13 00:46:07
String uri = SERVER_ADDRESS + "phonenum_search.php?phonenum=" + URLEncoder.encode(UserPhoneNum, "UTF-8");
HttpGet get = new HttpGet(uri);
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
// 이게 좀더 편하실듯 요걸로 해보세요
HttpEntity resEntity = response.getEntity();
String str = EntityUtils.getString(resEntity );
Log.i("str", "웹에 표시된 내용 => " + str);
Log.i("str", "웹에 표시된 내용 => " + str);
if (str.equals("false")) {
.... 생략
}
그런데 테스트때문에 그러신것 같기는 한데
== true 나 == false를 빼더라도
equals만으로도 boolean 타입을 반화 하기 때문에
검사가 되지요.




MYSQL : false
MYSQL : ㅅㅅㅅㅅㅅㅅㅅ
이렇게 출력된다는 건가요??