ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 폰에서 웹으로 Data 보내는방법 <POST>
    안드로이드/학습&강좌 2011. 3. 27. 20:14


    JSP 또는 PHP 등의 웹으로 구성된 페이지에 안드로이드에서 데이터를 보내는 방식에 대해서 알아본다면,

    서버를 잘구현해 둔다 하면 안드로이드에서는 필요한 데이터 < 패킷 > 만 전송하고 원하는 결과만 얻어서 올

    수 있습니다, 그만큼 클라이언트단에서의 작업량은 줄어들겠죠.

    간단하게 게시판이 있다 가정하고, 그 게시판에 글을 쓰는 방식을 안드로이드에서 해보도록 하겠습니다.

    게시판에 글쓰는 양식에 맞는 액션을 구현해 둡니다.

    이부분은 안드로이드 관련 강좌이기 때문에 JSP 부분은 생략하도록 하겠습니다.

    글쓰는 화면 입니다.  이화면에 대한 대충의 JSP 페이지 코드를 보자면

    <form action="NootoInsert.action" name="frm" method="post">
    <table>
     <tr>
     <td><input type="hidden" name="nooto_writer" value="${session.member.member_id }"/></td>
     </tr>
     <tr>
     <td width="100">제목 </td><td width="200"><input width="200" type="text" name="nooto_title"/></td>
     </tr>
     <tr>
     <td width="100">비밀번호 </td><td width="100"><input width="100" type="text" name="nooto_password"/></td>
     </tr>
     <tr>
     <td colspan="2">
     <textarea rows="20" cols="80" name="nooto_content"></textarea>
     </td>
     </tr>
     <tr>
     <td>
    </td>
    <td>
    <input type="button" value="목록" onclick="location.href='showNootoList.action'"/>
    <input type="button" value="등록" onclick="check()"/>
    <input type="button" value="취소" onclick="javascript:history.go(-1);"/>
    <input type="reset" value="초기화"/>
    </td>
     </tr>
    </table>
    </form>

    액션이름과 변수명을 잘 보세요~~

    이부분에 대한 안드로이드에서의 코드입니다.

    public class NoticeWriteActivity extends TopTitleActivity{
     
     EditText write_title, write_pass, write_content;
     Button btncommit;
     @Override
     protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      layoutinit();
     }

     private void layoutinit() {
      LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      setTheTitle("글쓰기");
      LinearLayout layBody = (LinearLayout) inflater.inflate(
        R.layout.notice_write, null);
      addView(layBody, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1);
      
      write_title = (EditText)findViewById(R.id.write_title);
      write_pass = (EditText)findViewById(R.id.write_pass);
      write_content = (EditText)findViewById(R.id.write_content);
      
      btncommit = (Button)findViewById(R.id.btncommit);
      
      btncommit.setOnClickListener(new OnClickListener() {
       
       @Override
       public void onClick(View arg0) {
        write();
       }
      });
      
     }
     
    // 이부분이 안드로이드에서 웹으로 DATA 를 보내는 부분입니다.
     private void write()
     {
        
      try
      {
       
       HttpClient client = new DefaultHttpClient();
       String postURL = kr.co.nooto.common.NootoURL.URL + "/NootoNotice/NootoInsert.action";
       HttpPost post = new HttpPost(postURL);
       List params = new ArrayList(); // 파라미터를 List에 담아서 보냅니다.
       params.add(new BasicNameValuePair("nooto_writer", "EpoNg")); //파라미터 이름, 보낼 데이터 순입니다.
       params.add(new BasicNameValuePair("nooto_title", write_title.getText().toString()));
       params.add(new BasicNameValuePair("nooto_password", write_pass.getText().toString()));
       params.add(new BasicNameValuePair("nooto_content", write_content.getText().toString()));
       
       UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
       post.setEntity(ent);
       HttpResponse responsePOST = client.execute(post);
       HttpEntity resEntity = responsePOST.getEntity();
       
      if (resEntity != null) {
       Log.w("RESPONSE", EntityUtils.toString(resEntity));
      }
      }catch (Exception e) {
       // TODO: handle exception
      }
     }
     
    }

    화면으로 보시면~


    결과입니다~


    잘 들어 왔네요 ㅎ.ㅎ

    폰에서 봤을땐~


    후 힘드네요. ㅎㅎ 마찬가지로 폰에 있는 사진도 보낼 수 있습니다. ~ POST 방식이 아닌 GET 방식도

    가능 하구요, 다음엔 폰에서 파일/또는 사진을 보내는 방식에 대해서도 알아보겠습니다.

    댓글

COPYRIGHT 2010 EpoNg. ALL RIGHTS RESERVED.