Jersey作为REST客户端,维护连接(或验证连接)

geo*_*ffc 1 connection rest jersey

我开始使用Jersey 2.1,我希望将其用作客户端,以便向其他人提供REST调用Web服务.

我一直在完成这些教程,我想我了解如何打开连接,并调用Web服务.

我的问题是,由于我的服务将持续存在,并且必须在事件发生时处理事件,如何管理和维护会话连接?

我一直试图了解我是否需要:

  1. 关闭连接?这似乎没有讨论过.拨打电话后是否隐含自动关闭?
  2. 如果没有自动关闭,我可以检查状态以查看Connection是否仍然有效?

小智 5

为每个请求打开基础连接,并在收到响应并处理实体(读取实体)后关闭.

final WebTarget target = ... some web target
Response response = target.path("resource").request().get();
System.out.println("Connection is still open.");
System.out.println("string response: " + response.readEntity(String.class));
System.out.println("Now the connection is closed.");
Run Code Online (Sandbox Code Playgroud)

如果您没有读取实体,则需要通过response.close()手动关闭响应.此外,如果实体被读入输入流(通过response.readEntity(InputStream.class)),则连接将保持打开状态,直到您完成从InputStream读取为止.在这种情况下,应在从InputStream读取结束时手动关闭InputStream或Response.