gpt4 book ai didi

java - JAX-RS:从 post() 响应中检索属性

转载 作者:行者123 更新时间:2023-12-01 09:06:58 25 4
gpt4 key购买 nike

我需要从 Response 对象中检索一个属性,该对象是从 post() 调用返回的:特别是,我正在使用 Neo4J 并且在发布节点之后我想检索它的 Id,它是返回的 XML 代码中的一个属性。我当前的帖子如下所示:

Response res = target.path("resource/node").request(MediaType.APPLICATION_XML)
.post(Entity.entity(node, MediaType.APPLICATION_XML));

然后我对返回的 HTTP 状态进行检查,并且我还需要节点 ID,该 ID 在以下位置返回:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node xmlns="http://www.namespace.org/Neo4J" id="140">
... node properties ...
</node>

我尝试将 res.getEntity() 转换为 Document 但会导致以下问题:

java.lang.ClassCastException: org.glassfish.jersey.client.internal.HttpUrlConnector$2 cannot be cast to org.w3c.dom.Document

提前致谢。

最佳答案

您可以使用 JAXB 将 POST 正文 XML 数据映射到 java 对象:

Payload entity = res.getEntity(Payload.class);
String id = payload.id;

您可以在其中定义有效负载以反射(reflect)您的 XML 结构:

import javax.xml.bind.annotation.*;


@XmlRootElement(name="node")
@XmlAccessorType(XmlAccessType.FIELD)
public class Payload {
@XmlAttribute(name = "id")
String id; // for example
}

关于java - JAX-RS:从 post() 响应中检索属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41193637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com