首页 > 解决方案 > 如何从 Future 中获取价值在 Java REST API 中

问题描述

我的 Rest Client 代码的一部分:

    Form form = new Form();
    form.param("username", "abc").param("password", "123");     

    Client client = ClientBuilder.newClient();
    WebTarget target = client.target("http://abc/abc.exe/api/v1/auth");

    Future<OTCSTicket> ticket = target.request(MediaType.APPLICATION_FORM_URLENCODED)
            .accept(MediaType.APPLICATION_JSON)
            .buildPost(Entity.form(form)).submit(OTCSTicket.class);

    try {
        System.out.println(ticket.get());
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ExecutionException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

如何获取 OTCTicket 对象内的值?

或者还有其他方法可以接受来自其余 Web 服务的 json 响应并将其映射到我的 OTCTicket 类?

我是新手..:)

标签: javarest

解决方案


用于ticket.get()获取值。这是一个阻塞调用。

您还可以ticket.get(timeout, unit)用于在超时单位后超时的非阻塞调用。


推荐阅读