[안드로이드] HttpPost( POST 방식으로 파라메터 넘기기 )


출처 : http://www.androidsnippets.com/executing-a-http-post-request-with-httpclient

public void postData() {
   
// Create a new HttpClient and Post Header
   
HttpClient httpclient = new DefaultHttpClient();
   
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");

   
try {
       
// Add your data
       
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs
.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs
.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost
.setEntity(new UrlEncodedFormEntity(nameValuePairs));

       
// Execute HTTP Post Request
       
HttpResponse response = httpclient.execute(httppost);
       
   
} catch (ClientProtocolException e) {
       
// TODO Auto-generated catch block
   
} catch (IOException e) {
       
// TODO Auto-generated catch block
   
}
}

[자바/안드로이드] 스레드(Thread)를 이용한 ProgressDialog 사용 방법


매우 복잡하구나.. 이걸로 몇일 지지고 볶아 봐야긋다..

관련 블로그 :
http://tigerwoods.tistory.com/26
http://stbaeya.com/tc/221
http://underclub.tistory.com/314

상태바 관련 :
http://cruciancar.blog.me/150103532612

안드로이드 개발 관련 유용한 사이트 모음


개발시 도움이 되는 내용들이 많은 사이트 블로그(로딩화면, 커스텀 리스트 뷰 등등 ) :
http://blog.naver.com/ggaddr?Redirect=Log&logNo=20123154889
커스텀 리스트 뷰 관련 : http://deviant86.tistory.com/301
http://www.androidpub.com/438631

안드로이드 커뮤니티
안드로이더 펍 : http://www.androidpub.com/
안드로이드 사이드 : http://www.androidpub.com/


안드로이드에서 JSON 활용 방법(펌), JSON이란?


JSON이란? : http://polomin.tistory.com/51   http://kimstar.pe.kr/blog/74(글이 아주 정리가 잘되어있다.)

안드로이드 JSON으로 로그인 예제 :

http://www.instropy.com/2010/06/14/reading-a-json-login-response-with-android-sdk/#respond

JAVA에서 (서플릿과 JSP)에서 JSON 활용방법 :
http://mainia.tistory.com/564

JSON에서 JSONArray에 add 후 JSONObject = new JSONObject(); 해주어야 JSONArray에 중복값이
들어 가는걸
막을 수 있다.( 초기화 하기전까진 제일 마지막에 들어간 값이 중복으로 들어가는 걸로 보인다. ) 관련참고사이트 : http://www.okjsp.pe.kr/seq/113513


-----------------------------------------------------------
출처  :
http://www.androidside.com/bbs/board.php?bo_table=B46&wr_id=3563
-----------------------------------------------------------
안녕하세요~ 매번 눈팅만하고 필요한 자료만 찾는 도중에

JSON 에 관련된 글이 없어서 간단하게나마 올려봅니다~.

이미 알고 계신분들도 많겠지만 저처럼 완전 초보는 이글을 읽고 조금이나마 도움이 됐으면 하는 바람입니다..

우선 json에 대한 기초도 없었던 저는 이번 프로젝트로 인해서 고생좀 했습니다 ㅜㅜ

간단하게 json 에대해 설명하자면 xml 의 무거움을 또 가독성(?)을 개선하고자 txt 파일로 만들어져있고

key 값과 value 값으로 구분이 됩니다...(제가 어렴풋이 이해한 개념이니.. 안맞더라도 양해를..)

예를 들어 home.json 이란 파일이 존재하고 이 내용을 보게 되면

{
     "title":"TEST",
     "title_img":"title.png",
      "buttons":[
           {
                 "id":"home01",
                 "title":"테스트버튼",
                 "icon_img":"test_btn.png",
                 "text_img":"text_img.png"
           },
           {
                 "id":"home02",
                 "title":"테스트버튼2",
                 "icon_img":"test_btn2.png",
                 "text_img":"text_img2.png"
           }
       ]
}

각줄의 첫번째 "" 안의 값은 key 값이 되며, 두번째 값은 value가 됩니다.

"buttons"의 경우 [ ] 로 묶여있는데 이것이 배열을 의마하게 됩니다.

위의 경우 {} 두번 반복되는 것은 배열buttons[ ]의 0번째 1번째가 되는거겠지요 ^^;;

배열안의 값도 key값과 value 값으로 구분되어 집니다...

간단? 하게나마 json파일 형식에 대해 말씀드린거구요(다시 말씀드리지만 저처럼 완전 초보님들에게만....)

자 이제 위와 같은 json 파일을 안드로이드 프로젝트에서 사용하고자 합니다.

안드로이드 api 에서 제공하는 json 의 사용은 한계점이 있습니다. json의 사용법은 관련 자료를 찾아보세요.
(지금 제가 하는 프로젝트는 위와 같이 json 파일로 받아서 각 화면의 이미지, 타이틀, list, url 등의 정보를 받아서 처리하도록 되어있습니다.)

처음에 별별자료를 다 읽어봤지만 안드로이드에서 사용하는 예제가 영문으로 되어있어서 대략난감했습니다...
한글로 된 블로그도 있었지만 제수준에서는 이해하기가;;;

우선 프로젝트의 assets 폴더 안에 json폴더를 생성해주었고 그안에 위와 같은 home.json 파일을 만들어주었습니다.

Home.java 라는 클래스를 생성해주고 json 파일을 읽어 오는 방법은

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //asset 폴더의 내용을 가져오기 
        AssetManager assetManager = getResources().getAssets();
        
      try{
        //사용하고자 하는 json 파일 open
        AssetInputStream ais = (AssetInputStream)assetManager.open("json/home.json");
 
        //stream을 리더로 읽기
        BufferedReader br = new BufferedReader(new InputStream(ais));

        //StringBuilder 사용
        StringBuilder sb = new StringBuilder();

        //json파일의 내용이 용량이 클경우 Stirng 의 허용점인 4096 byte 를 넘어가면 오류발생
        int bufferSize = 1024 * 1024;
        
        //char 로 버프 싸이즈 만큼 담기위해 선언
        char readBuf [] = new char[bufferSize];
        int resultSize = 0;
        
        //파일의 전체 내용 읽어오기
        while((resultSize = br.read(readBuf))  != -1){
                if(resultSize == bufferSize){
                       sb.append(readBuf);
                }else{
                       for(int i = 0; i < resultSize; i++){
                            //StringBuilder 에 append
                            sb.append(readBuf[i]);
                       }
                }
        } 
        // 수정 - 새로운 문자열을 만들어서 내부 버퍼의 내용을 복사하고 반환한다.
        String jString = sb.toString();

        //JSONObject 얻어 오기
        JSONObject  jsonObject =  new JSONObject(jString);

        //json value 값 얻기
        Stirng title = jsonObject.getString("title").toStirng();   //결과값 TEST
       
         //이미지 사용법에 대해서는 이미 아시리라 믿고 패스 할께요;;

       //JSONArray 사용법
        JSONArray jArr = new JSONArray(jsonObject.getStirng("buttos"));
        
       //StringArray에 buttons 의 title 키의 value값을 담겠습니다.  

        String btnTitle [] = new Stirng[jArr.length()];
     
         for(int i = 0; i < jArr.length(); i++){
                btnTitle [i] = jArr.getJSONObject(i).getString("title").toString();
                //출력하여 결과 얻기
                system.out.println("btnTitle[" + i + "]=" + btnTitle[i]);
         }

       }catch(JSONException je){
           Log.E("jsonErr", "json에러입니당~", je);
       }catch(Exception e){
           Log.E("execption", "파일이 없나봐용", e);
       }
    }

휴 일일이 쓰려니 힘드네요;; 위와 같이 코딩을 하여 json파일에 들어있는 값들을 적용할수가 있습니다.

이방법 알아내느라 아주 쬐금 고생을 했드랬죠 -_-;; 머라가 나빠서 이해력 속도가 느린;;;

이미지 사용법에 관해서는 여기 훌륭하신 분들의 강좌를 보고 좀 변형해서 했기에;;

제방법으로 하다가 머리가 아프실지 몰라 감히 올리지는 못하였네요 ㅎㅎㅎ

이상으로 json 파일 사용에 대한 간단한 글을 마치도록 할께요...

허접한 글이지만 저처럼 헤매시는 분들에게 조금이나마 도움이 되었으면 좋겠네요~~^^;;

ksoap2 웹서비스에서 배열형으로 리턴 받기


음.. 여러가지 방법을 시도 해보았으나.. 잘 되지 않는다. 아래 사이트를 참고해서 성공 해 보자 !!
아직 배울게 넘 많다 자바라도 제대로 했었으면 이리 어렵진 않을터인데 또다시 후회된당 ㅠㅠ

ResultSet 자체를 넘기면 안되는 이유 : http://www.okjsp.pe.kr/seq/64207

Web Service That Returns An Array of Objects With KSOAP :
http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html

- 1차원 배열 성공 리포트
웹서비스에서 String[] 형식으로 넘겨받은 후
안드로이드에서 받을 때
SoapObject response = (SoapObject)envelope.getResponse();
이 아닌
SoapObject response = (SoapObject)envelope.bodyIn;
로 받아와
response.toString();
해보면 웹서비스에서 넘어온 배열갯수 만큼 값들이 보일것이다.
response.getProperty(0).toString();
이런식으로 확인 가능

참고 사이트 :
http://droidcode.wordpress.com/2010/08/13/android-web-services-using-ksoap2/
http://v.daum.net/link/11619479

배열은 1차원 밖에 지원이 안되는듯 싶다. 복잡한 배열은 :
http://www.blackberry-forum.de/cgi-bin/YaBB.pl?num=1260616413 글을 참고하여 사용하도록 하자

http://seesharpgears.blogspot.com/2010/10/web-service-that-returns-array-of.html
http://seesharpgears.blogspot.com/2010/10/ksoap-android-web-service-tutorial-with.html

JDBC이용한 DB 접속 및 프로그램 구현 순서


역시 블로그 참조 : http://blog.naver.com/linox?Redirect=Log&logNo=40094538069

안드로이드 SOAP를 통한 웹서비스 접속 확인


  SOAP를 통해(정확히는 ksoap라는 라이브러리를 사용해서) 웹서비스를 이용해 보았다. 앞으로는 웹서비스에서 DB 접속 관련해서 어떤식으로 접속해야 하는지.. 웹서비스를 호출 할 때 마다 매번 웹서버의 웹서비스가 DB 접속을 하는것이 옳은것인지??  좀 궁금한 부분이 아직 많다. 어쨌든 아래 블로그를 확인해보면 안드로이드에서 웹서비스 호출과 결과값을 받아 올 수 있는것을 확인 할 수 있다.

http://blog.naver.com/lby2514?Redirect=Log&logNo=120118267311

[안드로이드] 이클립스 org.apache.commons.logging.LogConfigurationException 에러


이클립스에서 위와 같은 에러가 발생 했을 경우...
%JAVA_HOME%\lib\ext에 commons-logging-1.1.1.jar등과 같은 톰켓 라이브러리 파일들이 들어가 있는지 확인 해보고 넣지 않도록 주의!!!!!!!!!!!! 이것땜시 오늘도 2시간 헤멧다.. ㅠㅠ 흐엉 흐엉

[안드로이드] XML 파싱 방법의과 종류


DOM파서, SAX 파서, 안드로이드 XmlPullParser 3가지로 가능 한듯 국내는 XmlPullParser를 많이 사용한다고 한다 ^^

위 3가지 파싱방법에 대한 설명과 코드들은 아래 링크를 확인 바랍니다.

http://jkproject.net/6

http://blog.naver.com/schweine7?Redirect=Log&logNo=40112744930

[안드로이드] 아파치 HttpClient 컴포넌트(JAR) 이클립스 설치 및 이것을 이용한 외부 웹서비스 접근 방법 관련


아파치 HttpClient 컴포넌트 다운로드: http://hc.apache.org/downloads.cgi
4.1과 3.1 버전이 있는데 아마도.. 조금 class들의 위치를 조금 변경 한게 아닌가 싶다.
일단 기존 예제들이 3.1버전으로 많이 되어 있으니 3.1로 해보고 4.1으로 변환해보자 ^^

다운로드 후 이클립스에서 프로젝트에 컴포넌트 JAR 추가 방법 :http://blog.naver.com/iamzeus84?Redirect=Log&logNo=140066929069

아파치 HttpClient 4.1 예제 : http://mainia.tistory.com/569
아파치 HttpClient 3.1 예제 : http://blog.naver.com/lby2514?Redirect=Log&logNo=120118269702

그외 참고(안드로이드 기본 내장 사용하여 웹 컨트롤) : http://jujbob.blog.me/40120357974
그외 웹서비스 호출 하기 ASP와 PHP 웹서비스 : http://blackzaket.blog.me/80106866349

에고 험난하다 자바 안해본게 정말 안스럽다 ㅠㅠ.. 4GL 개발자에겐 험난한 여정이지 싶다. 그래도 조금씩 배워가보자 ^^ JSON이나 REST 등 아직 용어들도 생소하고.. ㅠㅠ.. 체계적으로 공부 할 사이트 없나 책을 하나 사야하나 뉴뉴~

톰켓 + AXIS2 설치 하기.



http://blog.naver.com/noranlemon84?Redirect=Log&logNo=10096444226

블로그를 참고 하자 ^^

[안드로이드] 구글 날씨 API를 이용한 XML 파싱 및 maybe missing INTERNET 관련


maybe missing INTERNET에러 해결 : http://blog.naver.com/xgraph?Redirect=Log&logNo=150081927021
안드로이드의 웹서비스관련 : http://blog.naver.com/lby2514?Redirect=Log&logNo=120118265769

구글날씨API : http://www.google.com/ig/api?weather=seoul&;ie=utf-8&oe=utf-8&hl=ko
구글날씨파싱방법 : http://gaspotion.tistory.com/36 http://bywords.tistory.com/19 http://canon110.tistory.com/109

안드로이드 XML 파싱관련 상세 : http://blog.naver.com/ugigi?Redirect=Log&logNo=70086695031

JAVA설치 및 MSSQL2005 연동 방법


자바설치 참고 : http://blog.naver.com/ssari93?Redirect=Log&logNo=130085951777

자바에서 MSSQL 연동 참고 : http://blog.naver.com/xioix?Redirect=Log&logNo=130033327876
( // 대신 \\ 안쓰도록 주의 이거 때문에 4시간동안 삽질했다 ㅠㅠ )

MSSQL2005용 JDBC 다운로드 :
http://www.microsoft.com/downloads/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707&DisplayLang=ko
( JDK가 20101117일 기준 최신일 경우 sqljdbc4.jar 사용, Java\jre6\lib\ext에 넣어주자. 자바 설치시  패스 설정 제대로 했다면 제대로 연결 되어야 한다. )

MSSQL JDBC 연결속성 관련 : http://msdn.microsoft.com/ko-kr/library/ms378988(v=SQL.90).aspx

MSSQL 연결관련 참고 블로그 :
http://blog.daum.net/idlebread/15895785
http://lyb1495.tistory.com/49
http://blog.naver.com/simplyjang?Redirect=Log&logNo=10096869742
http://blog.naver.com/mini9900?Redirect=Log&logNo=90039689180
SQL 2008 : http://blog.naver.com/ieiec?Redirect=Log&logNo=140110354348
SQL 2000 : http://blog.naver.com/cloud2519?Redirect=Log&logNo=40056054969
 ⑴ MSSQL2000

      ① JDBC 드라이버

          msutil.jar, mssqlserver.jsr, msbase.jsr

     ② MSSQL DriverClassName

         class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

⑵ MSSQL2005

    ① JDBC 드라이버

         sqljdbc.jar

    ② MSSQL DriverClassName

        class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

자바 에디터 플러스에서 사용하기 :
http://blueriver35.blog.me/60055887233

[펌] 안드로이드와 외부 DB연동 방법



출처 : http://ableperson.tistory.com/35
----------------------------------------------
 프로젝트 수행 시 DB를 사용해야 하는 경우가 상당히 많다. 보통은 서버 내부에 DB를 세팅하고 프로젝트 소스코드 내부에서 해당 데이터베이스로 직접 접속을 한다. (자바의 경우 JDBC를 이용)  하지만, 안드로이드 프로젝트 수행 시 같은 방법으로 디비처리를 실행하면 많은 문제점을 발견할 수 있다. 우선, JDBC 라이브러리와 안드로이드 프로젝트 사이의 연동이 불가능하다.(직접 해본결과 이클립스가 중지됨 - -, 엄청난 에러발생) 그래서 여기저기 수소문해본 결과, 안드로이드는 다른 서버로의 직접적인 DB 접근이 불가능하다는 것을 알게 되었다.








해결책은 다음과 같다.

1. 중간에 웹 서버를 두고, 사용자가 어떤 주소값을 웹 서버로 보내주면 서버 자체적으로 DB와 연동되어 연산 처리 후 XML 방식으로 리턴해 주면 안드로이드 내부에서 해당 XML 문서를 파싱해서 사용하는 것.

2. 웹 서버에서 DB의 내용을 HTML로 제공한다면 안드로이드 내부에서 HTML 문서를 파싱해서 사용하는 것.(단 HTML 라이브러리 다운받아야 함)

즉 아래 그림과 같은 방법을 사용해야 한다.










[펌] 안드로이드에서 MSSQL, ORACLE연결


안드로이드에서 DB 데이터 긁어 오는 방법. Android

2010/07/30 21:18

 직접 구해 보지는 않았지만 현재까지는 JDBC같은건 지원하지 않는단다...(빨리됬으면 좋겠다...)

 

안드로이드펍(  ) 게시판 중, 이런 방식을 통해서 가지고 오는 형식이 주류인것 같아서 정리해 본다..

 

MSSQL - ASP.NET(WebService) - android(ksoap2 library) thread - android(Views)

[출처] Android Side - http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=31#c_8214

 

WebService는 자바의 WSDP를 이용해야 할듯하고, 안드로이드의 SOAP 라이브러리도 한번 써봐야 할듯하다..

수일내로 테스트해서 코드완성하면 올려야쥐... ㅎ

ORACLE - WebService<WSDP로> ->  :::::::::  <- <SOAP client lib> 안드로이드 - 안드로이드 뷰

 

의 형태가 되지 싶다..

----------------------------------------------
출처 : http://asya390.blog.me/50093330040
----------------------------------------------

결국 3티어로 개발해야 한다는 이야기.!

결국 여러 클라이언트가 연결되어야 하는 경우

웹서비스(닷넷을 이용하든 자바를 이용하든)만들 때 UPDATE나 DELETE의 WHERE에 주의를 기울여야 할것같다.