안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드에서
웹서버와의 통신으로 로그인을 구현하려고 합니다.
안드로이드에서 웹서버에 아이디/패스워드 정보를 전달하고
웹서버에서 안드로이드로 결과를 받는 구조입니다.
안드로이드 EditText 값이
id = testid
password =1234
예를 들어
안드로이드에서 웹서버에 ("http://www.abcd.co.kr/login.php") 위의 아이디와 패스워드를 전달하고
웹서버에서 결과를 안드로이드에 echo "Login Sucess" 또는 echo "Login Fail" 보내준다면
안드로이드에서 그 값을 받고 싶습니다.
안드로이드에서 Response/ Request
웹서버로 데이타를 주고
웹서버에서 주는 데이타를 받는 방법을 알고싶습니다.
고수님 초보이오니 조금 자세한
조언부탁드리겠습니다
웹서버와의 통신으로 로그인을 구현하려고 합니다.
안드로이드에서 웹서버에 아이디/패스워드 정보를 전달하고
웹서버에서 안드로이드로 결과를 받는 구조입니다.
안드로이드 EditText 값이
id = testid
password =1234
예를 들어
안드로이드에서 웹서버에 ("http://www.abcd.co.kr/login.php") 위의 아이디와 패스워드를 전달하고
웹서버에서 결과를 안드로이드에 echo "Login Sucess" 또는 echo "Login Fail" 보내준다면
안드로이드에서 그 값을 받고 싶습니다.
안드로이드에서 Response/ Request
웹서버로 데이타를 주고
웹서버에서 주는 데이타를 받는 방법을 알고싶습니다.
고수님 초보이오니 조금 자세한
조언부탁드리겠습니다
2009.08.31 11:37:34
음, 저도 답변을 달아볼 날이 있네요.
일단은 Rest Client를 이용하는거겠죠? HttpClient를 이용하시면 될겁니다.
HttpClien client t=new DefaultHttpclient();
HttpPut/Get/Post/Delete method = new HttpPut/Get/Post/Delete(URI)
HttpResponse resp=null
resp=client.execute(method)
이렇게 하면 resp에 Request에 대한 응답이 들어오게 됩니다.
그리고 각각의 method에 들어갈 body는 HttpEntity를 이용하시면 될거 같습니다.
저같은 경우는 response에서 getStatusLine에서 response의 성공 여부를 확인했으며, Body의 내용은 EntityUtils를 이용했습니다.
2009.09.01 16:54:31
public void postClientAuth(){
HttpClient client=new DefaultHttpClient();
byte[] postBodyByte;
String postBody="";
// make post body to transmit to server
postBody="BODY INFORMATION HERE TYPED STRING"
// convert string type to byte[] type
postBodyByte=postBody.getBytes();
SERVER_URI="";
SERVER_URI="TO REQUEST URI"
try{
HttpEntity httpBody=new ByteArrayEntity(postBodyByte);
HttpResponse response;
HttpParams parms=new BasicHttpParams();
HttpPost method=new HttpPost(SERVER_URI);
method.setEntity(httpBody);
method.setParams(parms);
response=client.execute(method);
Log.i("MIR", "GET STATUS LINE: "+response.getStatusLine());
// store STATUS for RETURN CODE
HEADER_STATUS="";
HEADER_STATUS=response.getStatusLine().toString();
// get Entity from response
HttpEntity responseResultEntity=response.getEntity();
if(responseResultEntity != null){
// get result from response
RESPONSE_RESULT_FOR_AUTH="";
RESPONSE_RESULT_FOR_AUTH=EntityUtils.toString(responseResultEntity);
}else{
Log.i("MIR", "=======================RESPONSE_FAIL=======================");
Log.i("MIR", "RESPONSE_FAIL");
Log.i("MIR", "=======================RESPONSE_FAIL_END===================");
}
}catch(Exception e){
Log.e("MIR","HTTP ERROR");
}
Log.i("MIR", "==END OF POST CLIENT AUTHENTICATION==");
}
청유님께 답글을 리플을 달려고 했는데, 없어졌네요;;;
EntityUtils 부분에서 body를 받아왔으며, getStatusLine 부분에서 Response의 상태를 파악했어요.
위의 결과를 파싱하는건 아마도 쉽게 코드로 작성가능하실거구요.