안드로이드 개발 질문/답변
(글 수 45,052)
한줄메모 질의를 했는데 정확한 답변을 듣지 못해 고수님의 이해를 돕기 위해 다시금 비슷한 것으로 질문드립니다.
http://wizapp.kr/app/location.php 클릭하시면
아래처럼 결과가 나옵니다.
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
물론 위의 내용은 m_location이라는 테이블에서 location.php에서 요청해서 얻어온 정보입니다. 아래는 location.php 파일의 일부입니다.
[질문]
해당 웹서버 데이타베이스에 이름(m_name)과 위도(m_latitude), 경도(m_longitude) 정보를 어플상에서 전송(전달)하고자 합니다.
예를 들어. DB 명 appdb / table명 m_location 이라고 가정할 때 안드로이드 소스를 알려주시길 부탁드립니다.
공지사항은 이미 읽었음
<root>
<location xml_name="kim" xml_latitude="37566535" xml_longitude="126977969" /> </root>
물론 위의 내용은 m_location이라는 테이블에서 location.php에서 요청해서 얻어온 정보입니다. 아래는 location.php 파일의 일부입니다.
http://wizapp.kr/app/location.php
$sql = "select * from m_location";
$res = mysql_query($sql,$connect);
while($result = mysql_fetch_array($res)){
$xml_name = $result[m_name];
$xml_latitude = $result[m_latitude];
$xml_longitude = $result[m_longitude];
$xmlList.="<location xml_name = \"";
$xmlList.=$xml_name;
$xmlList.="\" xml_latitude = \"";
$xmlList.=$xml_latitude;
$xmlList.="\" xml_longitude = \"";
$xmlList.=$xml_longitude;
$xmlList.="\"> </location>";
</root>
}
mysql_free_result($res);
$xmlDoc="<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?> <root> $xmlList </root>";
echo "$xmlDoc";
?>
[질문]
해당 웹서버 데이타베이스에 이름(m_name)과 위도(m_latitude), 경도(m_longitude) 정보를 어플상에서 전송(전달)하고자 합니다.
예를 들어. DB 명 appdb / table명 m_location 이라고 가정할 때 안드로이드 소스를 알려주시길 부탁드립니다.
공지사항은 이미 읽었음
2011.03.02 16:23:15
http://www.itoa.co.kr/bbs/board.php?bo_table=ad_board9&wr_id=1169
위 URL에 보시면 로그인하는 예제가 있으니 폰에서 웹서버쪽으로 어떻게 데이터를 날리는지
알수 있을 것입니다.
위 URL에 보시면 로그인하는 예제가 있으니 폰에서 웹서버쪽으로 어떻게 데이터를 날리는지
알수 있을 것입니다.
2011.03.02 18:11:21
안드로이드 소스
public class postData extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button PostBt = (Button)findViewById(R.id.button1);
PostBt.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
//Toast.makeText("POST", Toast.LENGTH_SHORT).show();
postData();
}
});
}
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.wizapp.kr/app/test.php");
try { // Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
Log.i("com","list");
nameValuePairs.add(new BasicNameValuePair("name", "a12345"));
nameValuePairs.add(new BasicNameValuePair("latitude", "123"));
nameValuePairs.add(new BasicNameValuePair("longitude", "23"));
Log.i("com","add");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
Log.i("com","set2");
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
Log.i("com","resp");
// UrlEncodedFormEntity entityRequest = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");
// httppost.setEntity(entityRequest);
// httpclient.execute(httppost,responseHandler);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
Log.i("com","error1");
} catch (IOException e) {
// TODO Auto-generated catch block
Log.i("com","error2");
}
}
}알려 주신 소스를 참고해서 코딩을 했습니다. Log.i 를 분석해 보면 ...error2가 출력됩니다. 즉 HttpResponse response = httpclient.execute(httppost); 이 부분이 처리가 되지 않고 예외처리가 됩니다. 고수님의 좋은 지적과 답변 부탁드립니다.
2011.03.02 12:58:16
웹서버 데이타베이스에 Insert 하는 쿼리용 php를 만들어 놓고 안드로이드 어플상에서 httpclient를 이용해서 해당 php를 접속하면 되겠네요.
httpclient 예문은 여기 안드로이드펍에도 많으니 검색해보세요.
httpclient 예문은 여기 안드로이드펍에도 많으니 검색해보세요.




제가 완전 초짜였을때가 생각이 나서 퇴근하기전 덧글 달아드립니다.