2012-02-22 4 views
4

URLConnection 객체를 사용하여 안드로이드 클라이언트에서 서버로 데이터를 전송합니다.안드로이드 클라이언트에서 URLConnection 객체와 Httppost를 사용하는 사이에

URL url = new URL("http://10.0.2.2:8080/hello"); 
URLConnection connection = url.openConnection(); 
connection.setDoOutput(true); 
ObjectOutputStream out=new ObjectOutputStream(connection.getOutputStream()); 
String s="check"+","+susername; 
out.writeObject(s); 
out.flush(); 
out.close(); 

하지만 많은 안드로이드 프로그램이 httppost를 사용하여 다음과 같은 방식으로 데이터를 보냈습니다.

HttpClient client=new DefaultHttpClient(); 
HttpPost httpPost=new HttpPost(LOGIN_ADDRESS); 
List pairs=new ArrayList(); 
String strUsername=username.getText().toString(); 
String strPassword=password.getText().toString(); 
pairs.add(new BasicNameValuePair("username", strUsername)); 
pairs.add(new BasicNameValuePair("password", strPassword)); 
httpPost.setEntity(new UrlEncodedFormEntity(pairs)); 
HttpResponse response= client.execute(httpPost); 

둘 사이의 차이점을 설명하십시오. 서블릿의 후자의 경우 데이터를 어떻게받을 수 있습니까? 이 HttpPost에 대해 간략하게 설명하십시오. 인터넷에서 나는 코드를 발견했습니다. pls는 HttpPost와 그 메소드에 대한 단계별 설명과 서블릿에서 데이터를 수신하는 방법을 제공합니다. 링크가 정상적으로 작동합니다.

답변

9

blog post은 두 개의 차이점을 설명하는 데 매우 효과적입니다 (물론 실제로는 HttpURLConnection이지만 URLConnection의 하위 클래스 일뿐입니다). 기사의 일부 하이라이트는 다음과 같습니다

  • 이 HttpURLConnection의 쉽게
  • HttpURLConnection의 결과를 쉽게 캐싱 할 수 있습니다
  • HttpURLConnection의이 새로운 적극적 그래서 단지 더 빠르고
  • 을 더 얻을 것에 개발되고있다 GZIP 인코딩을 할 수 있습니다
  • HttpURLConnection은 foryo 및 pre-froyo 플랫폼에서 몇 가지 성가신 버그가 있습니다.
  • HttpClient가 시험 적용되었습니다. 오래 동안 돌아 왔고 작동했습니다.
  • HttpClient는 너무 오래되어 API가 완전히 잠겨 있기 때문에 거의 개발되지 않았습니다. 안드로이드 개발자가 더 잘 만들 수있는 방법은 많지 않습니다.

이 기사의 끝 부분에서는 froyo 이상의 모든 플랫폼에서 HttpURLConnection을 사용하도록 권장하고 있지만 개인적으로 HttpClient를 사용하는 것이 좋습니다. 나를 위해 사용하는 것이 더 쉽고 더 합리적입니다. 그러나 이미 HttpURLConnection을 사용하고 있다면 계속 사용해야합니다. 안드로이드 개발자들로부터 많은 사랑을 받고 있습니다.

+0

froyo가 이전에 버그가 있어도 계속 사용하지 않도록 설정하십시오. http://android-developers.blogspot.com/2011/09/androids-http-clients.html – HelmiB

+0

은 HttpURLConnection이 성숙하기 위해 더 많은 시간이 필요하며, 안드로이드 4.2에서도 버그를 발견했습니다. 연결은 확률이 더 컸다. 연결되지 않거나 알 수없는 이유로 연결하지 못합니다. – hyena