마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 httpclient객체 질문입니다

0 추천

서버는 php로 작성을 했구요

 

package com.httptest;
 
import java.util.ArrayList;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;
 
public class MainActivity extends TabActivity {
 
 
    // 전역변수 선언 
    TabHost mTabHost = null; 
    String myId, myPWord, myNick, mySubject, myResult;  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
       // Tab 만들기
        mTabHost = getTabHost();           
        mTabHost.addTab(mTabHost.newTabSpec("tab_1").setIndicator("서버로 전송").setContent(R.id.page01)); 
        mTabHost.addTab(mTabHost.newTabSpec("tab_2").setIndicator("서버에서 받음").setContent(R.id.page02)); 
        findViewById(R.id.button_submit).setOnClickListener(buttonClick);          
    }
    //------------------------------ 
    //    button Click 
    //------------------------------ 
    Button.OnClickListener buttonClick = new Button.OnClickListener() { 
        public void onClick(View v) {
        // 사용자가 입력한 내용을 전역변수에 저장한다 
        myId = ((EditText)(findViewById(R.id.edit_id))).getText().toString();  
        myPWord = ((EditText)(findViewById(R.id.edit_pword))).getText().toString();  
        myNick = ((EditText)(findViewById(R.id.edit_nick))).getText().toString();  
        mySubject = ((EditText)(findViewById(R.id.edit_subject))).getText().toString();
        PostData();
       
        };
        //------------------------------ 
        //    웹서버로 데이터 전송 
        //------------------------------ 
        public void PostData() {
        // Server URL (필자의 개인 서버 주소임)
        String Server_URL = "http://192.168.0.3/se.php";
        // 전송할 데이터를 저장할 ArrayList 생성
        ArrayList<HttpQue> sBuffer = new ArrayList<HttpQue>();
        // ArrayList에 <변수=값> 형태로 저장 
        sBuffer.add(new HttpQue("", Server_URL));                 // 서버 URL
        sBuffer.add(new HttpQue("user_id", myId));   // "" 안의 문자열은   
        sBuffer.add(new HttpQue("user_pword", myPWord)); // 서버에 설정된 변수명이다 
        sBuffer.add(new HttpQue("user_nick", myNick));  
        sBuffer.add(new HttpQue("user_subject", mySubject));    
        // HttpPost 생성  
        HttpPost mHttp = new HttpPost(sBuffer);
        // Data 전송
        mHttp.HttpPostData();
        myResult = mHttp.rString; // 전송 결과 
        // Tab2에 있는 TextEdit에 전송 결과 표시
        ((TextView)(findViewById(R.id.text_result))).setText(myResult); 
        } // PostData
}
 
인터넷에 있는 소스를 테스트해보았는데 httpclient객체를 생성하지않구 서버와 통신을 했더라구요 
httpclient객체가 필요가 없이 이게 가능한가요? ㅜㅜ 멘붕이네요 ㅜㅜ
감사합니다 
익명사용자 님이 2013년 4월 12일 질문

1개의 답변

0 추천

 먼저 구글링하셔서 http 통신 라이브러리 추가하신다음 테스트 해보세요,,

 

  HttpPost httppost;
  HttpClient httpclient;
  HttpEntity resEntity;
  HttpResponse response = null;
  
  httpclient = new DefaultHttpClient();
  httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
  httpclient.getParams().setParameter("http.protocol.expect-continue", false);
  httpclient.getParams().setParameter("http.connection.timeout", 1000 * 30);
  httpclient.getParams().setParameter("http.socket.timeout", 1000 * 30);
  httppost = new HttpPost("http://192.168.0.3/se.php");
  
  MultipartEntity mpEntity = new MultipartEntity();
  
  try {
   mpEntity.addPart("user_id",  new StringBody("아이디"));
   mpEntity.addPart("user_pw",  new StringBody("패스워드"));
   
   httppost.setEntity(mpEntity);
   response = httpclient.execute(httppost);
   
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

 

제가 적어드린건 파일업로드가 포함될때 사용하는 소스인데 참고하시기 바랍니다,,

님께서 올리신 소스는 만드신분이 HttpPost 를 재정의해서 사용하시는것같습니다,

도움이 되셧으면 좋겟네요,

익명사용자 님이 2013년 4월 12일 답변
아 감사합니다^^ 이제좀 알것같네용
...