javax.ws.rs.client.Client如何配置readTimeOut?

DrH*_*per 14 java rest web-services

com.sun.jersey.api.client.Clientjavax.ws.rs.client.Client如何配置客户端?

从:

import com.sun.jersey.api.client.Client;

Client client = Client.create();
client.setReadTimeout(1000 * 60 * 20);
client.setConnectTimeout(1000 * 20);
webResource = client.resource("someWhereOverTheRainbow");
..etc.
Run Code Online (Sandbox Code Playgroud)

至:

import javax.ws.rs.client.*;

Client client = ClientBuilder.newClient();
// **now what?** client.getConfiguration().getProperties().put("isThisTheWayToDoIt", 1000 * 60 * 2);

WebTarget target = client.target("someWhereOverTheRainbow");
..etc.
Run Code Online (Sandbox Code Playgroud)

我使用的是javax.ws.rs-api-2.0.jar

lon*_*hua 21

我假设您使用的是jax-rs-ri.为此,您可以使用ClientProperties.CONNECT_TIMEOUTClientProperties.READ_TIMEOUT.

例:

ClientConfig configuration = new ClientConfig();
configuration = configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000);
configuration = configuration.property(ClientProperties.READ_TIMEOUT, 1000);
Client client = ClientBuilder.newClient(configuration);
WebTarget target = client.target(
        "http://developer.github.com/v3/");
String content = target.request().get(String.class);
System.out.println(content);
Run Code Online (Sandbox Code Playgroud)

编辑:

我阅读了ClientConfig.property的API文档.@Gili是对的.

  • ClientConfig和ClientProperties不是特定于球衣的类吗?我认为问题是询问通过JAX-RS API设置连接超时和读取超时的通用方法 (3认同)