配置 JAX-RS 2.0 客户机
对于 Java API for XML RESTful Web Services 2.0,可以将客户机配置为访问 REST 端点。JAX-RS 2.0 引入了一种新的标准化客户机 API,以便您可以向远程 RESTful Web Service 发出 HTTP 请求。
关于此任务
过程
创建 JAX-RS 2.0 客户机并向服务器发送请求:
javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
javax.ws.rs.client.Client c = cb.build();
String res = null;
try {
res = c.target("<Resource_URL>")
.path("<PATH>")
.request()
.get(String.class);
} catch (Exception e) {
res = "[Error]:" + e.toString();
} finally {
c.close();
}
有关客户机 API 中的异步处理的更多信息,请参阅 JSR 339:JAX-RS 2.0:Java API for RESTful Web Services(“规范”)中的异步处理或第 8 章。下一步做什么
- 使用 com.ibm.ws.jaxrs.client.connection.timeout 客户机属性和
com.ibm.ws.jaxrs.client.receive.timeout 客户机属性来设置超时值。
- com.ibm.ws.jaxrs.client.connection.timeout
javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.connection.timeout", "1000"); Client c = cb.build();
- com.ibm.ws.jaxrs.client.receive.timeout
javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.receive.timeout", "1000"); Client c = cb.build();
提示: 超时属性的值以毫秒为单位,且类型必须为长整型或整型。如果值类型无效,那么将显示以下消息:CWWKW0700E: 在 JAX-RS 客户机端上的 com.ibm.ws.jaxrs.client.receive.timeout 属性中指定的超时值 {0} 无效。该值将设置为缺省值 30000。{3}
- com.ibm.ws.jaxrs.client.connection.timeout
- 使用下列客户机属性以实现客户机代理支持:
ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.proxy.host", "hostname"); cb.property("com.ibm.ws.jaxrs.client.proxy.port", "8888";); cb.property("com.ibm.ws.jaxrs.client.proxy.type", "HTTP"); Client c = cb.build();
- com.ibm.ws.jaxrs.client.proxy.host
- com.ibm.ws.jaxrs.client.proxy.port提示: 代理服务器端口值的类型必须为整型。缺省值为 80。如果值类型无效,那么将显示以下消息:
CWWKW0701E: 在 JAX-RS 客户机端上的 com.ibm.ws.jaxrs.client.proxy.port 属性中指定的代理服务器端口值 {0} 无效。该值将设置为缺省值 80。{3}
- com.ibm.ws.jaxrs.client.proxy.type提示: 代理服务器类型值必须为 HTTP 或 SOCKS。缺省值为 HTTP。如果代理服务器类型无效,那么将显示以下消息:
CWWKW0702E: 在 JAX-RS 客户机端上的 com.ibm.ws.jaxrs.client.proxy.type 属性中指定的代理服务器类型值 {0} 无效。该值将设置为缺省值 HTTP。{3}
- 配置 JAX-RS 2.0 客户机以验证 LTPA 令牌认证信息。
- 使用 SSL 保护 JAX-RS 2.0 客户机。
- 使用 com.ibm.ws.jaxrs.client.disableCNCheck 客户机属性禁用常用名称检查。
ClientBuilder cb = ClientBuilder.newBuilder(); cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);