XML API 응답과 함께 2.0.2 버전을 사용해야합니다. 하지만 내 사용자 지정 XML 변환기는 절대로 호출되지 않습니다.Retrofit 2.0.2가 포함 된 사용자 정의 xml 변환기가 호출되지 않습니다
이 놀아 난 발견 : 나는 동일한 응답을 구문 분석 발리를 사용하는 경우, 동일한 사용자 지정 XML 컨버터라고
- ;
- 내 RestClient에 GsonConverterFactory를 적용하고 json 응답을 구문 분석하면 내 사용자 지정 JsonAdapter (@JsonAdapter (SomeAdapter.class))가 호출됩니다.
누구나 내 간단한 xml 변환기를 호출 할 수 있습니까? 내가 잘못한 일을하고 있거나 2.0.2를 개조하면 어떻게 든 간단한 xml 변환기를 지원하지 않습니다.
내 자바 클래스 I 응답 구문 분석 여기서 호출되지 않습니다
import org.simpleframework.xml.Element;
import org.simpleframework.xml.convert.Convert;
public class PassengerResponse {
@Element
@Convert(value = SomeConverter.class)
private String id;
}
사용자 지정 XML 컨버터 :
import org.simpleframework.xml.convert.Converter;
import org.simpleframework.xml.stream.InputNode;
import org.simpleframework.xml.stream.OutputNode;
public class SomeConverter implements Converter<String> {
@Override
public String read(InputNode node) throws Exception {
return null;
}
@Override
public void write(OutputNode node, String value) throws Exception {
}
}
내 개조 위해 RESTClient :
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;
public class RestClient2 {
private UserApiJSON userPassengerApi;
private static final int TIMEOUT = 120000;
private static RestClient2 INSTANCE;
public static RestClient2 getInstance() {
if (INSTANCE == null) {
INSTANCE = new RestClient2();
}
return INSTANCE;
}
private RestClient2() {
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient okHttpClient = new OkHttpClient();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(SimpleXmlConverterFactory.create())
.client(okHttpClient.newBuilder().connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.readTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS)
.addInterceptor(loggingInterceptor)
.build())
.build();
userPassengerApi = retrofit.create(UserApiJSON.class);
}
public UserApiJSON getUserPassengerApi() {
return userPassengerApi;
}
}
고마워, 너는 나를 올바른 해결책으로 밀어 붙였다. – Andrew