이 오류가 왜 나는지 궁금합니다..
http://openAPI.seoul.go.kr:8088/xml/4150495f323037376c656a65776b/
%EB%B3%B4%EA%B4%80+%EB%B6%84%EC%8B%A4%EB%AC%BC+%EB%AA%A9%EB%A1%9D+%EC%A1%B0%ED%9A%8C/
11/20/t2
위 주소로 요청할때 저런 예외가 뜹니다.
근데 웃긴건
http://openAPI.seoul.go.kr:8088/xml/4150495f323037376c656a65776b/
%EB%B3%B4%EA%B4%80+%EB%B6%84%EC%8B%A4%EB%AC%BC+%EB%AA%A9%EB%A1%9D+%EC%A1%B0%ED%9A%8C/
1/10/t2
이렇게 요청하면 정상적으로 요청이 된다는겁니다....
무슨문제로 이런 예외가 뜨는거죠?
xml 파싱클래스는 이겁니다.
--------------------------------------------------------
import java.net.URL;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
public class MyXmlParser extends Thread {
ListDTO listDTO = null;
private String url;
private ArrayList<ListDTO> parsingList = null;
private ArrayList<ListDTO> myParsingList = null;
private Handler handler;
XmlPullParser xp = null;
public MyXmlParser(String url , Handler handler , ArrayList<ListDTO> content) {
// TODO Auto-generated constructor stub
this.url = url;
this.handler = handler;
parsingList = content;
}
public MyXmlParser(String url , Handler handler) {
// TODO Auto-generated constructor stub
this.url = url;
this.handler = handler;
myParsingList = new ArrayList<ListDTO>();
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
// Looper.prepare();
String tag = null;
String value = null;
try {
Log.d("lejewk","요청 URL : "+url);
URL url = new URL("this.url); //경로 지정
xp = XmlPullParserFactory.newInstance().newPullParser(); //파싱
xp.setInput(url.openStream() ,"UTF-8"); //스트림으로 읽어오기
int parserEvent = xp.getEventType(); //읽을타입 결정
Log.d("lejewk","읽을 타입 결정 : "+parserEvent);
while(parserEvent != XmlPullParser.END_DOCUMENT){
switch(parserEvent){
case XmlPullParser.START_TAG:
tag = xp.getName();
//태그가 아이템일경우
if(tag.matches(".*row*.")){
listDTO = new ListDTO();
}
break;
case XmlPullParser.END_TAG:
tag = xp.getName();
if(tag.matches(".*row*.")){
// parsingList.add(listDTO);
myParsingList.add(listDTO);
}
tag = null;
break;
case XmlPullParser.TEXT:
if(tag == null) break;
Log.d("lejewk","tag : "+tag);
if(tag.equals("ID")){
listDTO.setIdx(xp.getText());
}else if(tag.equals("GET_DATE")){
listDTO.setGet_date(xp.getText());
}else if(tag.equals("GET_NAME")){
listDTO.setGet_name(xp.getText());
}else if(tag.equals("TAKE_PLACE")){
listDTO.setTake_place(xp.getText());
}
break;
}
parserEvent = xp.next(); //다음 행 읽어오기
}
//파싱완료후 핸들러전송
Message message = handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("result", "success");
message.setData(bundle);
handler.sendMessage(message);
} catch (Exception e) { // 파싱해온거 없으면 이거 일어나는거 가튼디 ㄴㄴ 난 파싱에러 그딴거엄슴.. 근ㅁ ㅐ감버ㅗㄴ이ㅑ 까나
// TODO Auto-generated catch block
e.printStackTrace();
Message message = handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("result", "fail");
message.setData(bundle);
handler.sendMessage(message);
}
// Looper.loop();
}
public ArrayList<ListDTO> getParsingArrayList(){
return myParsingList;
}
}
두 url 모두 웹브라우저에서는 제대로 보이는데요.
에러 로그도 같이 올려주시는 게 좋을 듯 하네요.