java - JAX-RS 2.0 - 如何从响应对象获取实体

标签 java web-services jax-rs dropwizard

我正在使用 JAX-RS 2.0 和 Dropwizard 0.8.0-rc1,我真的不知道如何从 javax.ws.rs.core.Response 对象中提取我的实体。 response.getEntity() 给我 ByteArrayOutputStream。我可以创建两个请求 - 一个为我提供 header 和链接,另一个为我提供响应实体,但这似乎是一件愚蠢、浪费且不清楚的事情。有没有办法从响应对象获取实体?

我当前的测试代码如下:

public class GroupsResourceTest {

    public static String CONFIGURATION_FILE = "src/test/resources/test-conf.yml";

    @ClassRule
    public final static DropwizardAppRule<BpmConsoleConfiguration> RULE =
            new DropwizardAppRule<>(BpmConsoleApplication.class, CONFIGURATION_FILE);

    static Client client;

    @BeforeClass
    public static void initClient(){
        client = new JerseyClientBuilder(RULE.getEnvironment()).build("client");
        client.register(HttpAuthenticationFeature.basic(User.ADMIN.login, User.ADMIN.password));
    }

    @Test
    public void shouldGetGroups() {
        //when
        WebTarget resource = target("/groups");
        List<String> groups = resource.request().get(new GenericType<>(List.class)); //first request
        Response response = resource.request().get(); //second request
        Link self = response.getLink("self");
        //then
        assertThat(self.getUri().getPath()).isEqualTo("/groups");
        assertThat(groups).contains(User.ADMIN.login);

    }

    public WebTarget target(String path){
        String url = String.format("http://localhost:%d%s", RULE.getLocalPort(), path);
        return client.target(url);
    }

}

最佳答案

您可以使用:

关于java - JAX-RS 2.0 - 如何从响应对象获取实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26864688/

相关文章:

java - 如何解决Logcat错误?项目 ImageView 示例

java - 在 Java 中模拟 Group By Rollup

java - 需要修改 MainActivity.java 的代码结构

linux - 创建 Axis 2 .aar 文件时遇到问题 : xml/services not found error

没有 IIS 的 c# rest webservice

java - 加载 Jax-rs 资源时 SessionContext 丢失

android.graphics.BitmapFactory.nativeDecodeAsset( native 方法)中的 java.lang.OutOfMemoryError

java - 用于 REST 网络服务的 junit?

spring-mvc - @PathParam 和 @PathVariable 有什么区别

java - 来自 JAX-RS 客户端的确认