Помогите понять, где искать, кажется, что описание объекта правильно, xml-вход правильно, как исправить ошибку и получить данные?Retrofit2 + YII2 Rest API (org.xmlpull.v1.XmlPullParserException: Неожиданный токен)
Серверный интерфейс API YII2 для серверов, клиентское приложение для Android. Ниже - входные XML, классы моделей, код использования retrofit2.
/API/v1/книги
<?xml version="1.0" encoding="UTF-8"?>
<response>
<item>
<id>1</id>
<title>Test</title>
<description>test</description>
<thumbnail>1</thumbnail>
<path>1</path>
</item>
<item>
<id>2</id>
<title>Test 2</title>
<description>2</description>
<thumbnail>2</thumbnail>
<path>2</path>
</item>
</response>
Books.java
@Root (name = "response")
public class Books {
@ElementList (name = "item")
List<Book> items;
}
Book.java
@Root(name = "item")
public class Book {
@Element(name = "id")
private int id;
@Element(name = "title")
private String title;
@Element(name = "description")
private String description;
@Element(name = "thumbnail")
private String thumbnail;
@Element(name = "path")
private String path;
}
дооснащения использование
Retrofit retrofit = new Retrofit.Builder().baseUrl(API_PATH).client(new OkHttpClient()).addConverterFactory(SimpleXmlConverterFactory.create()) .build();
API sAPI = retrofit.create(API.class);
Call<Books> call = sAPI.loadBooks(); call.enqueue(b);
стек Ошибка
W/System.err: java.lang.RuntimeException: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT [{"id":1,"title"[email protected]:145 in [email protected])
at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:44)
at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:23)
at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:117)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:211)
at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:106)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:133)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT [{"id":1,"title"[email protected]:145 in [email protected])
at org.kxml2.io.KXmlParser.next(KXmlParser.java:432)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
at org.simpleframework.xml.stream.PullReader.read(PullReader.java:105)
at org.simpleframework.xml.stream.PullReader.next(PullReader.java:89)
at org.simpleframework.xml.stream.NodeReader.readElement(NodeReader.java:111)
at org.simpleframework.xml.stream.NodeReader.readRoot(NodeReader.java:85)
at org.simpleframework.xml.stream.NodeBuilder.read(NodeBuilder.java:84)
at org.simpleframework.xml.stream.NodeBuilder.read(NodeBuilder.java:71)
at org.simpleframework.xml.core.Persister.read(Persister.java:562)
at retrofit2.converter.simplexml.SimpleXmlResponseBodyConverter.convert(SimpleXmlResponseBodyConverter.java:36)
... 9 more
Добро пожаловать в переполнение стека! Сначала вы можете взять [тур] и узнать [спросить] хороший вопрос и создать [mcve]. Это облегчает нам помощь. – Katie