fun createServiceUsingSimpleXmlConverterFactory(): RetrofitService {
val logging = HttpLoggingInterceptor()
// set your desired log level
logging.level = HttpLoggingInterceptor.Level.BODY
val strategy: Strategy = AnnotationStrategy()
val serializer: Serializer = Persister(strategy)
val httpClient =
OkHttpClient.Builder() // add your other interceptors …
.addInterceptor(logging)// add logging as last interceptor
.connectTimeout(3, TimeUnit.MINUTES)
.writeTimeout(3, TimeUnit.MINUTES)
.readTimeout(3, TimeUnit.MINUTES)
.build()
val retrofit = Retrofit.Builder()
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(SimpleXmlConverterFactory.create(serializer))
.baseUrl(BASE_URL)
.client(httpClient)
.build()
return retrofit.create(RetrofitService::class.java)
}
}
- Это мой класс обслуживания для модернизации.
- Я создаю запрос soap и вызываю api.
- Запрос успешно создан и напечатан в logcat.
- Я получаю ответ Dynami c от сервера.
- Мой ответ будет «Принято» или « Failed "или может быть что угодно, Dynami c в отличие от других ответов.
Это ошибка, которую я получаю.
org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT Accepted@1:9 in okhttp3.ResponseBody$BomAwareReader@6aac9ad)
Здесь api успешно, как я вижу в журнале в этой ошибке я также вижу, что мой ответ принят. Но не удалось его проанализировать.
Это мой метод вызова API службы.
fun callApi(@Body body: Request?): Observable<Response?>
Я попытался поставить обычную строку вместо вышеприведенного ответа, но не работает.
Мой класс ответа:
@Root(name = "")
data class Response(
@Text
val data: String? = null
)
Но я не могу разобрать. Дайте мне знать, если у вас есть идеи.