我写了一个简单的类来测试响应读取实体方法(如果它按预期工作)。但它没有奏效。
当我启动课程时,我在'".$yearly_income."')";
发现了以下错误:
response.readEntity()
这是我写的代码
Exception in thread "main" java.lang.IllegalStateException: Method not supported on an outbound message.
at org.glassfish.jersey.message.internal.OutboundJaxrsResponse.readEntity(OutboundJaxrsResponse.java:150)
我做错了什么?
答案 0 :(得分:26)
Response
es有两种类型,即入站和出站,但它们仍然使用相同的接口。出站是指从服务器发送响应
Response response = Response.ok(entity).build();
入站是指您在客户端收到回复。
Response response = webTarget.request().get();
在服务器端出站响应中禁用readEntity
方法,因为您不需要它。它仅在您需要_de_serialize响应流的响应时使用。但是当它出站时没有。
如果您希望实体出站响应,请使用Response#getEntity()
答案 1 :(得分:1)
您可以直接使用 Mockito 模拟响应。像这样
private final Response response = Mockito.mock(Response.class);
然后您可以在调用 readEntity
方法时模拟所需的响应。
Mockito.when(response.readEntity(String.class)).thenReturn("result");