반응형
안드로이드 네트워킹 API를 사용해서 네트워킹을 지원해 보도록할까요?
Java를 해보신 분이라면 한 번쯤 보셨을 java.net 패키지가 사용됩니다.
가장 흔히 쓰이는 HTTP를 위주로 진행해 보겠습니다.
참고로 HTTP로는 대부분의 자료를 캡슐화 할 수 있고 SSL을 적용함으로써 보안 통신을 수행할 수도 있습니다.
■ 웹(Web)에서 자료 읽기!
웹에서 자료를 읽어 오는 것은 비교적 간단합니다.
읽고자하는 웹 페이지의 URL을 알기만 하면 java.net 패키지의 URL 클래스를 사용해서 원하는 자료를 읽어 올 수 있습니다.
import java.io.InputStream;
import java.net.URL;
//...
try {
import java.net.URL;
//...
try {
URL url = new URL("http://kkoseul.tistory.com/entry/2011080101");
InputStream isText = url.openStream();
byte[] bText = new byte[250];
int readSize = isText.read(bText);
Log.i("Net", "readSize = " + readSize);
Log.i("Net", "bText = " + new String(bText));
isText.close();
InputStream isText = url.openStream();
byte[] bText = new byte[250];
int readSize = isText.read(bText);
Log.i("Net", "readSize = " + readSize);
Log.i("Net", "bText = " + new String(bText));
isText.close();
}catch(Exception e){
Log.e("Net", "네트워크 에러가..났습니다...", e);
}
읽어올 자료의 URL을 URL객체로 생성합니다. 그다음 URL에 대한 입력 스트림을 열고 자료를 읽으면 됩니다.
위 코드의 경우는 250byte 만큼만 자료를 읽은 후 스트림을 닫습니다.
네트워크 상의 자원을 이용할 때에는 통신망의 상태나, 자원이 있는 서버의 상태에 따라 오류가 날 수 있으므로 이 점을 알고 있어야하며 또 URL이 잘 못 되는 경우도 있으니 주의가 필요합니다. (try-catch문을 쓰는 이유가 이것?^^)
그리고 중요한 한 가지!
안드로이드 응용프로그램이 네트워크 기능을 사용하려면 적절한 권한이 필요합니다.
AndroidManifest.xml 파일의 <manifest>요소 하위에 <uses-permission>요소를 추가합니다.
<uses-permission android:name="android.permission.INTERNET"/>
추가하지 않으면..여러분도 저와 같은 메시지를 보게 되실겁니다 ㅠ_ㅠ
위의 한 줄을 추가하니 기분 좋은 로그가 보이는 군요^ㅁ^ 여기까지가 웹에서 자료를 읽어오기 였습니다!
다음 포스트에서는 HttpURLConnection 클래스를 사용해서 자료에 대한 정보를 가져와 보도록 하겠습니다!!
반응형
'컴퓨터&IT > 안드로이드 Android' 카테고리의 다른 글
Android - XML 파일 파싱하기 (0) | 2011.08.24 |
---|---|
Android - HttpURLConnection 클래스 (0) | 2011.08.24 |
Android - 리스트 뷰(ListView) (0) | 2011.08.24 |
Android - 어댑터 뷰(AdapterView) (0) | 2011.08.24 |
Android - 어댑터(Adapter) (1) | 2011.08.24 |