public class MainActivity extends Activity {
private EditText userid;
private EditText passwd;
private Button login;
private TextView text;
Handler handler = new Handler();
String result;
ArrayList<String> items = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userid = (EditText) findViewById(R.id.userid);
passwd = (EditText) findViewById(R.id.passwd);
login = (Button) findViewById(R.id.login);
text = (TextView) findViewById(R.id.text);
// 버튼 이벤트 처
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(1);
String userid1 = userid.getText().toString();
String passwd1 = passwd.getText().toString();
// 서버에 넘겨줄 파라미터 저장
ArrayList<NameValuePair> list = new ArrayList<NameValuePair>();
list.add(new BasicNameValuePair("userid1", userid1));
list.add(new BasicNameValuePair("passwd1", passwd1));
final String urlPath = "http://웹/xml/appXml.php?userid="
+ userid1 + "&passwd=" + passwd1;
// 네트워크 연동을 위한 작업 스레드 생성
Thread t = new Thread(new Runnable() {
@Override
public void run() {
InputStream is = requestGet(urlPath);
final String result = streamToString(is);
// final String resultXml = streamToString(is);
// final int a = Integer.parseInt(result);
result.trim();
handler.post(new Runnable() {
@Override
public void run() {
String mid = result.substring(
result.indexOf("<mid>") + 5,
result.lastIndexOf("</mid>"));
String name = result.substring(
result.indexOf("<name>") + 6,
result.lastIndexOf("</name>"));
if (result != null) {
text.setText(mid + name);
} else
{
text.setText("실패");
}
removeDialog(1);
}
});
}
});
t.start();
}
});
/*
* try { XmlPullParser parser = getResources().getXml(R.id.text);
*
* while(parser.getEventType() != XmlPullParser.END_DOCUMENT){
* if(parser.getEventType() == XmlPullParser.START_TAG){
* if(parser.getName().equals(parser)){
* items.add(parser.getAttributeValue(0)); } } parser.next(); } } catch
* (Throwable t) { // TODO: handle exception }
*/
} // end onCreate
// Get 요청처리 메소드
public InputStream requestGet(String requestUrl) {
try {
// 요청하기
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(requestUrl);
HttpResponse response = client.execute(request);
// 응답하기
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
return is;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}// end requestGet
//
public String streamToString(InputStream is) {
StringBuffer buffer = new StringBuffer();
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
String str = reader.readLine();
while (str != null) {
buffer.append(str);
str = reader.readLine();
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}// end streamToString
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
현재 앱에서 웹에 호출하여 로그인이 성공하면 php의 텍스트를 보여주는 기능을 구현하였습니다.
그런데 로그인 성공시에는 php에서 원하는 내용을 불러오지만
로그인 실패시에는 로그인 실패 메시지가 나타나지 않고 앱이 중지가 되는데요
이것을 어떻게 수정해야되나요?