[안드로이드] - 공공데이터 xml 파싱
예) 각 구별로 미세먼지 받아오는 것 ( 구가 25개 )
인증키 : 774649594b6a756e3833795164754b
<ListAirQualityByDistrictService>
<list_total_count>25</list_total_count>
<RESULT>
<CODE>INFO-000</CODE>
<MESSAGE>정상 처리되었습니다</MESSAGE>
</RESULT>
<row>
<MSRDATE>201710131400</MSRDATE>
<MSRADMCODE>111123</MSRADMCODE>
<MSRSTENAME>종로구</MSRSTENAME>
<MAXINDEX>56</MAXINDEX>
<GRADE>보통</GRADE> 통합대기환경지수 등급
<POLLUTANT>O3</POLLUTANT>
<NITROGEN>0.017</NITROGEN> 이산화질소(ppm)
<OZONE>0.037</OZONE> 오존(ppm)
<CARBON>0.4</CARBON> 일산화탄소(ppm)
<SULFUROUS>0.002</SULFUROUS> 아황산가스(ppm)
<PM10>30</PM10> 미세
<PM25>18</PM25> 초미세
</row>
public class AirEco extends AppCompatActivity {
ListView seeTotalData;
ListViewAdapter adapter;
String a1, a2, a3, a4, a5; // 구, 상태, 미세, 초미세, 오존
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_air_eco);
String strUrl = "http://openapi.seoul.go.kr:8088/774649594b6a756e3833795164754b/xml/ListAirQualityByDistrictService/1/25/";
new DownloadWebpageTask().execute(strUrl);
}
public void guClicked(View v){
String strUrl = "http://openapi.seoul.go.kr:8088/774649594b6a756e3833795164754b/xml/ListAirQualityByDistrictService/1/25/";
new DownloadWebpageTask().execute(strUrl);
}
public void statClicked(View v){
Intent i = new Intent(this, PrePlan.class);
startActivity(i);
finish();
}
// 미세먼지 클릭했을때 설명 띄움
public void miseClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("미세먼지가 우리 몸속으로 들어오면 면역을\n담당하는 세포가 먼지를 제거하여 우리 몸을\n지키도록 작용하게 되는데, 이 때 부작용인\n염증반응이 나타납니다. 기도, 폐, 심혈관, 뇌\n등 우리 몸의 각 기관에서 이러한\n염증반응이 발생하면 천식, 호흡기, 심혈관계\n질환 등이 유발될 수 있습니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("미세먼지");
// 다이얼로그 보기
alert.show();
}
// 초미세먼지 클릭했을때 설명 띄움
public void chomiseClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("사람의 눈으로는 식별조차 할 수 없는 입자들이 호흡기뿐 아니라, 피부로도 침투해 각종 심혈관 질환을 일으킵니다. 뿐만 아니라 폐, 생식기, 뇌, 태아에게도 영향을 끼치는 무서운 물질입니다. 현재 1급 발암물질로 지정되어 있기도 합니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("초미세먼지");
// 다이얼로그 보기
alert.show();
}
// 오존 클릭했을때 설명 띄움
public void ozonClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("오존은 호흡을 통해 인체로 들어오며, 인체조직에서 자극과 염증을 유발합니다. 호흡기 질환을 일으키는데 오존이 중요한 역할을 합니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("오존");
// 다이얼로그 보기
alert.show();
}
private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
return (String) downloadUrl((String) urls[0]);
} catch (IOException e) {
return "다운로드 실패";
}
}
protected void onPostExecute(String result) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(result));
int eventType = xpp.getEventType();
// Adapter 생성
adapter = new ListViewAdapter() ;
// 리스트뷰 참조 및 Adapter달기
seeTotalData = (ListView) findViewById(R.id.seeTotalData);
seeTotalData.setAdapter(adapter);
String Gu = "";
String Stat = "";
String Mise = "";
String Chomise = "";
String Ozon = "";
boolean bSet_Gu = false;
boolean bSet_Stat = false;
boolean bSet_Mise = false;
boolean bSet_Chomise = false;
boolean bSet_Ozon = false;
boolean bSet_row = false;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
;
} else if (eventType == XmlPullParser.START_TAG) {
String tag_name = xpp.getName();
if (tag_name.equals("MSRSTENAME"))
bSet_Gu = true;
if (tag_name.equals("GRADE"))
bSet_Stat = true;
if (tag_name.equals("PM10"))
bSet_Mise = true;
if (tag_name.equals("PM25"))
bSet_Chomise = true;
if (tag_name.equals("OZONE"))
bSet_Ozon = true;
if(tag_name.equals("PM25"))
bSet_row = true;
} else if (eventType == XmlPullParser.TEXT) {
if (bSet_Gu) {
Gu = xpp.getText();
a1 = Gu;
bSet_Gu = false;
}
if (bSet_Stat) {
Stat = xpp.getText();
a2 = Stat;
bSet_Stat = false;
}
if (bSet_Mise) {
Mise = xpp.getText();
a3 = Mise;
bSet_Mise = false;
}
if (bSet_Chomise) {
Chomise = xpp.getText();
a4 = Chomise;
bSet_Chomise = false;
}
if (bSet_Ozon) {
Ozon = xpp.getText();
a5 = Ozon;
bSet_Ozon = false;
}
if(bSet_row){
adapter.addItem(a1, a2, a3, a4, a5);
bSet_row = false;
}
} else if (eventType == XmlPullParser.END_TAG) {
;
}
eventType = xpp.next();
}
} catch(Exception e){
;
}
}
private String downloadUrl(String myurl) throws IOException {
HttpURLConnection conn = null;
try {
URL url = new URL(myurl);
conn = (HttpURLConnection) url.openConnection();
BufferedInputStream buf = new BufferedInputStream(conn.getInputStream());
BufferedReader bufreader = new BufferedReader(new InputStreamReader(buf, "utf-8"));
String line = null;
String page = "";
while((line = bufreader.readLine()) != null){
page += line;
}
return page;
} finally {
conn.disconnect();
}
}
}
}
public class AirSearch extends AppCompatActivity {
Spinner spinner1; // 검색하려는 구
int guNumber; // 해당 구넘버 저장위한
String strUrl;
ImageView mainImage;
TextView seeGu;
TextView seeMise2, seeMiseInfo2, seeChomise2, seeChomiseInfo2, seeOzon2, seeOzonInfo2;
TextView seeCarbon2, seeCarbonInfo2, seeNitrogen2, seeNitrogenInfo2, seeSulfurous2, seeSulfurousInfo2;
LinearLayout resultLayout, ecoLayout, guLayout; // visible, invisible 하기 위한
TextView ecoValue, ecoValueMent; // 환경평가지수랑 그에 따른 멘트 적기 위해
int numberMise, numberChomise;
Double numberOzon, numberNitrogen, numberCarbon, numberSulfurous;
String[] list = { "강남구", "강동구", "강북구", "강서구", "관악구", "광진구", "구로구", "금천구", "노원구",
"도봉구", "동대문구", "동작구", "마포구", "서대문구", "서초구", "성동구", "성북구", "송파구", "양천구",
"영등포구", "용산구", "은평구", "종로구", "중구", "중량구"
};
//String strUrl = "http://openAPI.seoul.go.kr:8088/774649594b6a756e3833795164754b/xml/ListAirQualityByDistrictService/1/5/" + guNumber + "/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_air_search);
seeGu = (TextView)findViewById(R.id.seeGu);
mainImage = (ImageView)findViewById(R.id.mainImage);
seeMise2 = (TextView)findViewById(R.id.seeMise2);
seeMiseInfo2 = (TextView)findViewById(R.id.seeMiseInfo2);
seeChomise2 = (TextView)findViewById(R.id.seeChomise2);
seeChomiseInfo2 = (TextView)findViewById(R.id.seeChomiseInfo2);
seeOzon2 = (TextView)findViewById(R.id.seeOzon2);
seeOzonInfo2 = (TextView)findViewById(R.id.seeOzonInfo2);
seeCarbon2 = (TextView)findViewById(R.id.seeCarbon2);
seeCarbonInfo2 = (TextView)findViewById(R.id.seeCarbonInfo2);
seeNitrogen2 = (TextView)findViewById(R.id.seeNitrogen2);
seeNitrogenInfo2 = (TextView)findViewById(R.id.seeNitrogenInfo2);
seeSulfurous2 = (TextView)findViewById(R.id.seeSulfurous2);
seeSulfurousInfo2 = (TextView)findViewById(R.id.seeSulfurousInfo2);
ecoValue = (TextView)findViewById(R.id.ecoValue);
ecoValueMent = (TextView)findViewById(R.id.ecoValueMent);
guLayout = (LinearLayout)findViewById(R.id.guLayout);
resultLayout = (LinearLayout)findViewById(R.id.resultLayout);
ecoLayout = (LinearLayout)findViewById(R.id.ecoLayout);
spinner1 = (Spinner)findViewById(R.id.spinner1);
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, list);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
if( list[position].equals("강남구"))
guNumber = 111261;
else if( list[position].equals("강동구"))
guNumber = 111274;
else if( list[position].equals("강북구"))
guNumber = 111291;
else if( list[position].equals("강동구"))
guNumber = 111274;
else if( list[position].equals("강서구"))
guNumber = 111212;
else if( list[position].equals("관악구"))
guNumber = 111251;
else if( list[position].equals("광진구"))
guNumber = 111141;
else if( list[position].equals("구로구"))
guNumber = 111221;
else if( list[position].equals("금천구"))
guNumber = 111281;
else if( list[position].equals("노원구"))
guNumber = 111311;
else if( list[position].equals("도봉구"))
guNumber = 111171;
else if( list[position].equals("동대문구"))
guNumber = 111152;
else if( list[position].equals("동작구"))
guNumber = 111241;
else if( list[position].equals("마포구"))
guNumber = 111201;
else if( list[position].equals("서대문구"))
guNumber = 111191;
else if( list[position].equals("서초구"))
guNumber = 111262;
else if( list[position].equals("성동구"))
guNumber = 111142;
else if( list[position].equals("성북구"))
guNumber = 111161;
else if( list[position].equals("송파구"))
guNumber = 111273;
else if( list[position].equals("양천구"))
guNumber = 111301;
else if( list[position].equals("영등포구"))
guNumber = 111231;
else if( list[position].equals("용산구"))
guNumber = 111131;
else if( list[position].equals("은평구"))
guNumber = 111181;
else if( list[position].equals("종로구"))
guNumber = 111123;
else if( list[position].equals("중구"))
guNumber = 111121;
else if( list[position].equals("중량구"))
guNumber = 111151;
strUrl = "http://openAPI.seoul.go.kr:8088/774649594b6a756e3833795164754b/xml/ListAirQualityByDistrictService/1/5/" + guNumber + "/";
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
;
}
});
}
public void searchClicked(View v){
new AirSearch.DownloadWebpageTask().execute(strUrl);
resultLayout.setVisibility(View.VISIBLE);
ecoLayout.setVisibility(View.VISIBLE);
guLayout.setVisibility(View.VISIBLE);
}
public void mainImageClicked(View v){
Intent i = new Intent(this, PrePlan.class);
startActivity(i);
finish();
}
// 미세먼지 클릭했을때 설명 띄움
public void miseClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("미세먼지가 우리 몸속으로 들어오면 면역을\n담당하는 세포가 먼지를 제거하여 우리 몸을\n지키도록 작용하게 되는데, 이 때 부작용인\n염증반응이 나타납니다. 기도, 폐, 심혈관, 뇌\n등 우리 몸의 각 기관에서 이러한\n염증반응이 발생하면 천식, 호흡기, 심혈관계\n질환 등이 유발될 수 있습니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("미세먼지");
// 다이얼로그 보기
alert.show();
}
// 초미세먼지 클릭했을때 설명 띄움
public void chomiseClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("사람의 눈으로는 식별조차 할 수 없는 입자들이 호흡기뿐 아니라, 피부로도 침투해 각종 심혈관 질환을 일으킵니다. 뿐만 아니라 폐, 생식기, 뇌, 태아에게도 영향을 끼치는 무서운 물질입니다. 현재 1급 발암물질로 지정되어 있기도 합니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("초미세먼지");
// 다이얼로그 보기
alert.show();
}
// 오존 클릭했을때 설명 띄움
public void ozonClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("오존은 호흡을 통해 인체로 들어오며, 인체조직에서 자극과 염증을 유발합니다. 호흡기 질환을 일으키는데 오존이 중요한 역할을 합니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("오존");
// 다이얼로그 보기
alert.show();
}
// 일산화탄소 클릭했을때 설명 띄움
public void carbonClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("일산화탄소를 흡인한 사람에게는 두통, 오심, 구토, 현기증, 혼란감, 흉통, 무력감, 호흡 곤란, 발직 및 혼수를 일으킬 수 있습니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("일산화탄소");
// 다이얼로그 보기
alert.show();
}
// 이산화질소 클릭했을때 설명 띄움
public void nitrogenClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("이산화질소에 장기간 노출될 경우 아동 및 노약자들의 급성호흡기질환 발생률이 증가하며 폐암까지도 일으킨다. 또한 기관지염, 점막을 심하게 자극하고 심하면 폐수종, 혈압상승 등이 나타나 의식을 잃게 만듭니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("이산화질소");
// 다이얼로그 보기
alert.show();
}
// 아황산가스 클릭했을때 설명 띄움
public void sulfurousClicked(View v){
// 다이얼로그 바디
AlertDialog.Builder alert_confirm = new AlertDialog.Builder(this);
// 메세지
alert_confirm.setMessage("아황산가스는 인체의 상부기도 점막을 자극하여 기침을 일으키며 심할경우 폐렴 등의 증상을 일으킵니다. 또 식물에게는 백화현상을 발생시키고 산성비의 원인물질중 하나입니다.");
// 확인 버튼 리스너
alert_confirm.setPositiveButton("확인", null);
// 다이얼로그 생성
AlertDialog alert = alert_confirm.create();
// 다이얼로그 타이틀
alert.setTitle("아황산가스");
// 다이얼로그 보기
alert.show();
}
private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
return (String) downloadUrl((String) urls[0]);
} catch (IOException e) {
return "다운로드 실패";
}
}
protected void onPostExecute(String result) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(result));
int eventType = xpp.getEventType();
String Gu = "";
String Grade = "";
String Mise = "";
String Chomise = "";
String Ozon = "";
String Nitrogen =""; // 이산화질소(ppm)
String Carbon = ""; // 일산화탄소(ppm)
String Sulfurous = ""; // 아황산가스(ppm)
boolean bSet_Gu = false;
boolean bSet_Grade = false;
boolean bSet_Mise = false;
boolean bSet_Chomise = false;
boolean bSet_Ozon = false;
boolean bSet_Nitrogen = false;
boolean bSet_Carbon = false;
boolean bSst_Sulfurous = false;
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
;
} else if (eventType == XmlPullParser.START_TAG) {
String tag_name = xpp.getName();
if (tag_name.equals("MSRSTENAME"))
bSet_Gu = true;
if (tag_name.equals("GRADE"))
bSet_Grade = true;
if (tag_name.equals("PM10"))
bSet_Mise = true;
if (tag_name.equals("PM25"))
bSet_Chomise = true;
if (tag_name.equals("OZONE"))
bSet_Ozon = true;
if (tag_name.equals("NITROGEN"))
bSet_Nitrogen = true;
if (tag_name.equals("CARBON"))
bSet_Carbon = true;
if (tag_name.equals("SULFUROUS"))
bSst_Sulfurous = true;
} else if (eventType == XmlPullParser.TEXT) {
if (bSet_Gu) {
Gu = xpp.getText();
seeGu.setText(Gu);
//tv.append("Gu : " + Gu + "\n");
bSet_Gu = false;
}
if (bSet_Grade) {
Grade = xpp.getText();
ecoValue.setText(Grade);
if(Grade.equals("좋음")){
mainImage.setColorFilter(Color.WHITE);
mainImage.setImageResource(R.drawable.good);
ecoValueMent.setText("야외활동하기 정말 좋습니다.");
} else if(Grade.equals("보통")){
mainImage.setColorFilter(Color.WHITE);
mainImage.setImageResource(R.drawable.normal);
ecoValueMent.setText("마스크 없이 야외활동하기 좋습니다.");
} else if(Grade.equals("나쁨")){
mainImage.setColorFilter(Color.WHITE);
mainImage.setImageResource(R.drawable.bad);
ecoValueMent.setText("외출 시 마스크 착용을 권장합니다.");
} else if(Grade.equals("점검중")){
mainImage.setColorFilter(Color.WHITE);
mainImage.setImageResource(R.drawable.good);
ecoValueMent.setText("현재 점검중입니다.");
} else {
mainImage.setColorFilter(Color.WHITE);
mainImage.setImageResource(R.drawable.verybad);
ecoValueMent.setText("정말 심각하니 마스크를 꼭 착용해주세요.");
}
// tv.append("stat : " + stat + "\n");
bSet_Grade = false;
}
if (bSet_Mise) {
Mise = xpp.getText();
numberMise = Integer.parseInt(Mise);
seeMise2.setText(Mise + "(㎍/m³)");
if(numberMise <= 30) {
seeMiseInfo2.setText("좋음");
} else if (numberMise <= 80) {
seeMiseInfo2.setText("보통");
} else if (numberMise <= 150 ){
seeMiseInfo2.setText("나쁨");
} else {
seeMiseInfo2.setText("매우나쁨");
}
bSet_Mise = false;
}
if (bSet_Chomise) {
Chomise = xpp.getText();
numberChomise = Integer.parseInt(Chomise);
seeChomise2.setText(Chomise + "(㎍/m³)");
if(numberChomise <= 15) {
seeChomiseInfo2.setText("좋음");
} else if(numberChomise <= 50){
seeChomiseInfo2.setText("보통");
} else if (numberChomise <= 100){
seeChomiseInfo2.setText("나쁨");
}else {
seeChomiseInfo2.setText("매우나쁨");
}
bSet_Chomise = false;
}
if (bSet_Ozon) {
Ozon = xpp.getText();
numberOzon = Double.parseDouble(Ozon);
seeOzon2.setText(Ozon + "(ppm)");
if(numberOzon <= 0.03) {
seeOzonInfo2.setText("좋음");
} else if(numberOzon <= 0.09){
seeOzonInfo2.setText("보통");
} else if (numberOzon <= 0.15){
seeOzonInfo2.setText("나쁨");
}else {
seeOzonInfo2.setText("매우나쁨");
}
bSet_Ozon = false;
}
if (bSet_Nitrogen) {
Nitrogen = xpp.getText();
numberNitrogen = Double.parseDouble(Nitrogen);
seeNitrogen2.setText(Nitrogen + "(ppm)");
if(numberNitrogen <= 0.03) {
seeNitrogenInfo2.setText("좋음");
} else if(numberNitrogen <= 0.06){
seeNitrogenInfo2.setText("보통");
} else if (numberNitrogen <= 0.20){
seeNitrogenInfo2.setText("나쁨");
}else {
seeNitrogenInfo2.setText("매우나쁨");
}
bSet_Nitrogen = false;
}
if (bSet_Carbon) {
Carbon = xpp.getText();
numberCarbon = Double.parseDouble(Carbon);
seeCarbon2.setText(Carbon + "(ppm)");
if(numberCarbon <= 2) {
seeCarbonInfo2.setText("좋음");
} else if(numberCarbon <= 9){
seeCarbonInfo2.setText("보통");
} else if (numberCarbon <= 15){
seeCarbonInfo2.setText("나쁨");
}else {
seeCarbonInfo2.setText("매우나쁨");
}
bSet_Carbon = false;
}
if (bSst_Sulfurous) {
Sulfurous = xpp.getText();
numberSulfurous = Double.parseDouble(Sulfurous);
seeSulfurous2.setText(Sulfurous + "(ppm)");
if(numberSulfurous <= 0.02) {
seeSulfurousInfo2.setText("좋음");
} else if(numberSulfurous <= 0.05){
seeSulfurousInfo2.setText("보통");
} else if (numberSulfurous <= 0.15){
seeSulfurousInfo2.setText("나쁨");
}else {
seeSulfurousInfo2.setText("매우나쁨");
}
bSst_Sulfurous = false;
}
} else if (eventType == XmlPullParser.END_TAG) {
;
}
eventType = xpp.next();
}
} catch(Exception e){
;
}
}
private String downloadUrl(String myurl) throws IOException {
HttpURLConnection conn = null;
try {
URL url = new URL(myurl);
conn = (HttpURLConnection) url.openConnection();
BufferedInputStream buf = new BufferedInputStream(conn.getInputStream());
BufferedReader bufreader = new BufferedReader(new InputStreamReader(buf, "utf-8"));
String line = null;
String page = "";
while((line = bufreader.readLine()) != null){
page += line;
}
return page;
} finally {
conn.disconnect();
}
}
}
}
'안드로이드' 카테고리의 다른 글
[안드로이드] - 이미지버튼이나 이미지에 메뉴 넣기 (0) | 2017.10.20 |
---|---|
[안드로이드] - 액티비티 완전히 종료하기 (0) | 2017.10.18 |
[안드로이드] - 시크바, 프로그래스바와 쓰레드 (0) | 2017.10.18 |
[안드로이드] - 이미지버튼 회색배경 없애기 (1) | 2017.10.14 |
[안드로이드] - 둥근 모서리 테두리 만들기 (0) | 2017.10.14 |