2015년 8월 6일 목요일

안드로이드 : 인터넷상에 파일이 존재하는지 여부 체크

특정 URL 에 파일이 존재하는지 여부를 체크한다.

일단 메시지를 출력할 레이아웃하나 대강 만들고...


[web_check.xml]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView01" />

    <TextView
        android:id="@+id/textView02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView02" />
</LinearLayout>


저기다 파일을 체크한 결과를 디스플레이 한다.
"WebCheck.java" 를 시작 클래스로 지정해 놓았으니, 앱을 시작하자 마자 결과값이 나올거다.


[WebCheck.java]

package kr.blogspot.son10001;

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.widget.TextView;

public class WebCheck extends Activity {
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.web_check);

     TextView textview01 = (TextView)findViewById(R.id.textView01);
     TextView textview02 = (TextView)findViewById(R.id.textView02);

     StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitNetwork().build());
     
  try {
      URL url = new URL("http://192.168.0.181:915/gcmtest.aspx");
      URLConnection con = url.openConnection();
      HttpURLConnection exitCode = (HttpURLConnection)con;

      if(exitCode.getResponseCode() == 200){
          textview01.setText("URL01 : 파일이 있습니다!!!");
      } else {
          textview01.setText("URL01 : 파일이 없습니다.");
      }
  } catch (Exception e) {
      textview01.setText("URL01 : 오류 발생 !!!");
  }

  try {
      URL url = new URL("http://192.168.0.181:915/notest.aspx");
      URLConnection con = url.openConnection();
      HttpURLConnection exitCode = (HttpURLConnection)con;

      if(exitCode.getResponseCode() == 200){
          textview02.setText("URL02 : 파일이 있습니다!!!");
      } else {
          textview02.setText("URL02 : 파일이 없습니다.");
      }
  } catch (Exception e) {
      textview02.setText("URL02 : 오류 발생 !!!");
  }
 }
}

저기 있는 2개의 URL 을 체크하는데, 하나는 존재하는 파일이고, 하나는 없는 파일이다.

참고로 "StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().permitNetwork().build());" 는 원래 메인 쓰레드에서 네크워크 처리를 하면 오류를 발생시키는데, 이걸 막기위한 코드다.
하지만, 이건 정상적인 처리방법이 아니므로 원래는 별도의 쓰레드를 사용해 처리해야 정상이다.

암튼 이렇게 하고 실행해 보면...


이렇게 결과 값이 나온다.