我正在尝试访问返回多行、多列响应的 REST 端点,例如:
A1 B1 C1 A2 B2 C2 A3 B3 C3 ... ...
我目前正在使用 jersey-client 来访问这个端点,并试图寻找最简洁的方法来解析这个响应。在这里,每一行代表一个 bean,比方说MyBean
,其中的每一列代表该 bean 中的一个属性。响应中值的顺序始终是固定的。
我可以将响应作为长字符串返回,将其拆分为换行符和制表符以获取单个值。
但是,我想知道是否有一种方法可以将结果作为 a 获得List<String>
,其中的每个元素List
将代表响应的一行。然后我可以将其拆分\t
以获取单个值。
这是我尝试过的:
WebResource resource = client.resource(NETSPEAK_URL)
.type(MediaType.TEXT_PLAIN)
.get(new GenericType<List<String>>(){});
但这会导致以下异常:
A message body reader for Java class java.util.List,
and Java type java.util.List<java.lang.String>,
and MIME media type text/plain; charset=UTF-8 was not found
如果我更贪婪,我想知道是否可以将各个列值映射到我的 bean 的属性,MyBean
. 我考虑过在 周围创建一个包装器MyBean
,以获得一个MyBean
s 列表,但是我将如何对其进行注释以帮助解析?这对于 xml/json 响应是有意义的。但这是纯文本。
是否有可能以某种方式告诉 jersey-client 关于解析此文本/普通响应的信息?如果这可以通过 Apache HTTP 客户端实现,我已经准备好搬家了。
谢谢