티스토리 뷰
아.. 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
- 일기
- 에픽하이
- 영화
- android
- 코이데 케이스케
- 책
- 락
- 일본
- 일어일기
- 여행
- 서울숲별밤축제
- 드라마
- 안드로이드
- Linux
- epik high
- 도쿄
- postcrossing
- 잡담
- 신주쿠
- 사진
- Java
- 야마다 타카유키
- 포스트크로싱
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |