티스토리 뷰
아.. retrofit 2.0은 정보가 많이 없구나...
xml 이 제대로 된 형태가 아니라서 어쩔수 없이 일부 모델에 대해선 직접 파싱을 해야해서 어케어케 해보니 아래와 같이 하면 되더이다..
맞는 방법인지는 몰겠음 -_-;;
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(baseUrl);
builder.addConverterFactory(new ConverterFactory());
public static class ConverterFactory extends Converter.Factory {
SimpleXmlConverterFactory defaultConverter;
public ConverterFactory() {
defaultConverter = SimpleXmlConverterFactory.create();
}
@Override
public Converter<?, RequestBody> toRequestBody(Type type, Annotation[] annotations) {
return defaultConverter.toRequestBody(type, annotations);
}
@Override
public Converter<ResponseBody, ?> fromResponseBody(Type type, Annotation[] annotations) {
if (!(type instanceof Class)) {
return null;
}
Class<?> cls = (Class<?>) type;
if (cls == MyModel.class) {
return new MyModel.MyModelConverter();
}
return defaultConverter.fromResponseBody(type, annotations);
}
}
public class MyModel{
// has members..
public static class MyModelConverter implements Converter<ResponseBody, MyModel> {
@Override
public MenuList convert(ResponseBody value) throws IOException {
MyModel model = new MyModel();InputStream is = value.byteStream();
try {
InputNode read = NodeBuilder.read(is);// make model...
} catch (Exception e) {
e.printStackTrace();
} finally {
is.close();
}
return model ;
}
}
}
- Total
- Today
- Yesterday
- 락
- 야마다 타카유키
- Mac
- 서울숲별밤축제
- 드라마
- Java
- 음악
- 인디
- 코이데 케이스케
- 사진
- 신주쿠
- 도쿄
- android
- 잡담
- epik high
- postcrossing
- 공연
- 포스트크로싱
- 안드로이드
- 진해
- Linux
- 일어일기
- 아사가야
- 영화
- 책
- 일본
- 에픽하이
- 일기
- 노래
- 여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |