안드로이드 개발 질문/답변
(글 수 45,052)
다들 점심은 맛있게 드셨나요.
아예 손도 못대고 있다가 이제 손은 조금 대봤습니다;
가만히 있어서는 아무것도 안될 것 같아서 일단 비주얼스튜디오 들어가서 db도만들고 asp.net 웹프로젝트 하나 만들어서 만든 DB도 집어넣어놨습니다.
다음은 안드로이드 코딩을했습니다.
현재 참고중인 사이트가 두군대입니다. 한곳의 소스는
URL url = new URL("http://주소/insert_query.php?u_name="+playerName+"&u_record="+value+"");
url.openStream();
rank.Append(playerName, value);
이렇게되어있습니다 ;진짜 저거 3줄이 꼴랑입니다 ; 위아래에 트라이 캐치 있는거말고는요 ;;
url.openStream();
rank.Append(playerName, value);
이렇게되어있습니다 ;진짜 저거 3줄이 꼴랑입니다 ; 위아래에 트라이 캐치 있는거말고는요 ;;
근데 너무 간결해서 그게 오히려 좋았습니다 ; 이해가 확됬거든요..
빨간부분의 이름의 변수를 주소에 넣고 그안에 playerName이랑 value라는 변수값 집어넣어서
php에서 변수이름 u_name과 u_record로 받습니다(저는asp.net)
근데 다른거 찾아보면 제가 하려는거 하기위해서 httpget httppost 이런거쓰고 소스도 훨씬 길던데...아...질문이 점점 바보같아지는 것 같지만 어쩔 수 없습니다 전 바보니까요 ㅋㅋ
저 위의 3줄짜리 소스는 httpPost나 그런게 필요한데 그냥 생략해놓은걸까요 아니면 진짜 저 3줄만으로 가능한건가요 -_-...그리고 저기서 rank는 무슨 형식인지 모르겠네요...
그리고 또 하나 본 소스가
public class Asp extends Activity implements OnClickListener{
String sendData(String name) throws ClientProtocolException, IOException, SocketException{
HttpPost request = makeHttpPost(name);
HttpClient client = new DefaultHttpClient();
ResponseHandler<String> reshandler = new BasicResponseHandler();
String result = client.execute(request, reshandler);
return result;
}
public HttpPost makeHttpPost(String $name){
HttpPost request = new HttpPost("http://localhost:56039/Default.aspx");
ArrayList<NameValuePair> nameValue = new ArrayList<NameValuePair>();
nameValue.add(new BasicNameValuePair("name", $name));
request.setEntity(makeEntity(nameValue));
return request;
}
public HttpEntity makeEntity(ArrayList<NameValuePair> $nameValue){
HttpEntity result = null;
try{
result = new UrlEncodedFormEntity($nameValue, "UTF-8");
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return result;
}
public void onClick(View v){
}
}
HttpPost request = makeHttpPost(name);
HttpClient client = new DefaultHttpClient();
ResponseHandler<String> reshandler = new BasicResponseHandler();
String result = client.execute(request, reshandler);
return result;
}
public HttpPost makeHttpPost(String $name){
HttpPost request = new HttpPost("http://localhost:56039/Default.aspx");
ArrayList<NameValuePair> nameValue = new ArrayList<NameValuePair>();
nameValue.add(new BasicNameValuePair("name", $name));
request.setEntity(makeEntity(nameValue));
return request;
}
public HttpEntity makeEntity(ArrayList<NameValuePair> $nameValue){
HttpEntity result = null;
try{
result = new UrlEncodedFormEntity($nameValue, "UTF-8");
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return result;
}
public void onClick(View v){
}
}
이런 소스입니다. 솔직히 하나도 이해안가는데 인터넷 찾아서 일단 처보고 에러고친겁니다. 원본소스와는 아주 살짝 다르지만 저는 보내는 값이 하나뿐이라 빨간부분 남기고 다른건 다 지워버렸고
HttpPost request = new HttpPost("http://localhost:56039/Default.aspx");
이 안에 원래 $url이라고 되어있었으나 지우고 이렇게 바꿔버렸습니다.
이 안에 원래 $url이라고 되어있었으나 지우고 이렇게 바꿔버렸습니다.
근데 위에 소스보면 이해가안가는게
nameValue.add(new BasicNameValuePair("name", $name));
여기서 $name이 asp.net과 공유되는(.net으로 넘어가는) 변수명이라는데요. 그럼 저 안에 값이 뭐가 들어가는건가요 --...혹시 저 "name" 이 들어가는건가요...??
여기서 $name이 asp.net과 공유되는(.net으로 넘어가는) 변수명이라는데요. 그럼 저 안에 값이 뭐가 들어가는건가요 --...혹시 저 "name" 이 들어가는건가요...??
매번 답변주시는대도 아직 실력이 모자라서 한번에 해결하기가 좀 어렵습니다 ...ㅠ.ㅠ ..도움주시면 감사하겠습니다.
부디 쉽게 알려주시면 더 감사하겠습니다 ㄱ-...
2011.12.20 14:51:00
nameValue.add(new BasicNameValuePair("name", $name)); 파라미터 앞 "name"은 key. 파라미터 뒤 $name은 value. 고로 nameValue.add(new BasicNameValuePair("name", "내가 보내고픈 값")); name이란 변수에 "내가 보내고픈 값"이 요청됩니다.
2011.12.20 15:26:52
반대군요 ;;
근대 어쨋든 소스 저대로 치고 asp.net에서
Dim requestname As String = Request("name")
로 request값 받아서 웹페이지 들어갈때마다 insert하고있는데
no(key값 자동증가)랑 name 두개밖에 없는 DB이고 no는 1씩 자동증가이기때문에 request받은거
Dim requestname As String = Request("name")
command.CommandText = "insert into android(name) values('" + requestname + "')"
이렇게 해주고있는데
ㅠ.ㅠ...페이지 키면 name은 아무값도 안들어가고 no값만 하나씩 추가되네요...안드로이드 소스쪽이 잘못된건지 asp.net에서 request받는게 잘못된건지 생각해봤는데 아무래도 안드로이드 쪽 같은데 어디가 잘못된걸까요 ㅠ




nameValue.add(new BasicNameValuePair("name", $name));
new BasicNameValuePair(key, value) 인걸로 알고있는데요
저도 포스트 이걸로했습니다.