如何解决在创建客户端时使用已经创建的配置时,Jersey客户端的Http不支持错误 Https工作正常
我正在使用Jersey客户端对服务器进行REST API调用。下面是相同的代码:
图书馆:org.glassfish.jersey.client
final JerseyStrictSslConfigurationFactory singletonFactory =
JerseyStrictSslConfigurationFactory.getDefaultFactory();
final ClientConfig clientConfig =
singletonFactory.from(SSLMode.RETAIL_INTERNAL,SslConfigurator.getDefaultContext());
Client client = ClientBuilder.newBuilder()
.withConfig(clientConfig) // passing clientConfig direclty here
.register(JacksonFeature.class)
.build();
WebTarget somTarget = client.target("https://postman-echo.com").path("/get");
Response resp = somTarget.queryParam("foo",1).request(MediaType.APPLICATION_JSON).get();
System.out.println(resp.getStatus());
现在上面的代码可以使用res:200,但是如果将目标从 https:// 更改为 http://
WebTarget somTarget = client.target("http://postman-echo.com").path("/get");
我开始遇到错误:
javax.ws.rs.ProcessingException: org.apache.http.conn.UnsupportedSchemeException: http protocol is not supported
如果需要,将添加完整的堆栈跟踪
现在,如果我稍稍更改上面的代码并在创建客户端时使用新的clientconfig对象
Client client = ClientBuilder.newBuilder()
.withConfig(new ClientConfig(clientConfig)) // created new client config object instead of using clientConfig directly
.register(JacksonFeature.class)
.build();
它还可以与 http:// 一起使用,并为https和http提供200个状态代码。
问题:为什么发生这种情况,当我们使用新的ClientConfig 对象http时,如果我们通过已经创建的 clientConfig 对象http不支持的错误,就会出现。
>版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。