본문 바로가기

Android/URLConnection, GET

Android URLConnection example

안드로이드에서 URLConnection을 이용하여 웹서버에 GET 방식 요청을 하고 응답을 받는 예

res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="TextView" /> </ScrollView> </LinearLayout>


AndroidManifest.xml 에는 다음과 같이 권한을 설정하는 부분이 있어야 한다

<uses-permission android:name="android.permission.INTERNET"/>


MainActivity.java

package com.example.androidapp; import java.io.*; import java.net.*; import android.app.*; import android.os.*; import android.util.*; import android.widget.*; public class MainActivity extends Activity { TextView tv; Handler handler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView) findViewById(R.id.textView1); new Thread() { public void run() { connect(); } }.start(); } StringBuilder strBuilder = new StringBuilder(); private void connect() { try{ URL url = new URL("http://naver.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); if(conn!=null) { conn.setConnectTimeout(10000); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setDoOutput(true); int resCode = conn.getResponseCode(); if(resCode == HttpURLConnection.HTTP_OK) { InputStream is = conn.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; while((line=br.readLine())!=null) { strBuilder.append(line+"\n"); } br.close(); conn.disconnect(); } } handler.post(new Runnable() { public void run() { tv.setText(strBuilder.toString()); } }); }catch(Exception ex) { ex.printStackTrace(); Log.e("접속오류", ex.toString()); } } }