我正在使用RESTEasy客户端从API中检索JSON字符串。JSON有效负载看起来像这样:
{
"foo1" : "",
"foo2" : "",
"_bar" : {
"items" : [
{ "id" : 1 , "name" : "foo", "foo" : "bar" },
{ "id" : 2 , "name" : "foo", "foo" : "bar" },
{ "id" : 3 , "name" : "foo", "foo" : "bar" },
{ "id" : 4 , "name" : "foo", "foo" : "bar" }
]
}
}
现在,我只提取对象映射的<code>项
我将RESTEasy代理框架用于我的API方法。
REST客户端代码:
ResteasyWebTarget target = client.target("https://"+server);
target.request(MediaType.APPLICATION_JSON);
client.register(new ClientAuthHeaderRequestFilter(getAccessToken()));
MyProxyAPI api = target.proxy(MyProxyAPI.class);
MyDevice[] result = api.getMyDevice();
RESTEasy代理接口:
public interface MyProxyAPI {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/device")
public MyDevice[] getMyDevices();
...
}
您可以创建一个ReaderInterceptor
并使用Jackson来操作您的JSON:
public class CustomReaderInterceptor implements ReaderInterceptor {
private ObjectMapper mapper = new ObjectMapper();
@Override
public Object aroundReadFrom(ReaderInterceptorContext context)
throws IOException, WebApplicationException {
JsonNode tree = mapper.readTree(context.getInputStream());
JsonNode items = tree.get("_bar").get("items");
context.setInputStream(new ByteArrayInputStream(mapper.writeValueAsBytes(items)));
return context.proceed();
}
}
然后在您的客户端
中注册上面创建的 ReaderInterceptor
:
Client client = ClientBuilder.newClient();
client.register(CustomReaderInterceptor.class);
我同样希望不必为包含比我关心的字段多得多的消息定义复杂的Java类。在我的JEE服务器(WebSphere)中,Jackson是底层JSON实现,这似乎是RESTEasy的一个选项。Jackson有一个@JsonIgnoreProperties注释,可以忽略未知的JSON字段:
import javax.xml.bind.annotation.XmlType;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@XmlType
@JsonIgnoreProperties(ignoreUnknown = true)
public class JsonBase {}
我不知道其他JSON实现是否具有类似的功能,但它看起来肯定是一个自然的用例。
(我还写了一篇博文,介绍了这一技术以及其他一些与我的WebSphere环境相关的JAX遥感技术。)
我想从服务器获取一个.json文件到客户端的.js文件 下面是app.js:(服务器代码) 我需要它在js文件:
我在RestEasy客户端-3.0.8中得到以下异常
我正在尝试编写简单的RESTEasy客户端。下面给出了示例代码: 我在行中得到异常: 我在控制台中看到以下错误: 更新:我还尝试在POM中添加resteasy jax-rs依赖关系。我还通过在web.xml中添加以下行来验证是否启用了ResteasyProviderFactory: 请查看以下maven依赖项列表: 但这不起作用。 但现在我看到了其他方法的类似异常: 我在行中看到了这个例外: 奇怪
我认为这个客户机库很方便,并希望继续使用它,但我如何驯服它或重写它,以便返回真正的错误消息?
我不知道这里有什么问题。我想发出一个响应二进制数据(例如文件下载)而不是JSON的HTTP请求。 这些行是可以的-但需要JSON。 但我需要将响应定义为不是 JSON。 在这里,我遇到了一个问题。我也尝试了“斑点”。我总是在编译时收到一个类型脚本错误。 类型'{resseType:"string";}'的参数不能分配给类型'{Headers?: HttpHeaders|{[head: string
只是想知道有没有办法得到spring Web-Flux的web客户端的响应时间?