[英]jax-ws redirect http / https
如果服务器将 http 上的 301 返回到 https,我在使用 jax-ws 使其工作时遇到问题。 我遇到了一个例外,在用 charles 调试后,重定向似乎不起作用。 我还注意到 http 到 https[*] 有一些技巧,但我不确定它是否仍然适用于 java8
这是我想在网上找到的脏修复程序中使用的伪代码
TestImplService service = new TestImplService();
Test test = service.getTestImplPort();
Map<String, Object> tmp = ((BindingProvider) test).getRequestContext();
/*dirty fix*/
tmp.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, tmp.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY).toString().replace("http:", "https:")
);
test.dosomething();
用 https 替换 http 工作,但我不是 100% 确定这是正确的方法。
假设服务器决定停止支持 https,为 http 禁用 301,那么我的修复将不再起作用。
我可以以另一种方式强制跟随重定向吗?
BindingProvider 类 BindingProvider.ENDPOINT_ADDRESS_PROPERTY 属性可用于更改端点 URL; 有时 HTTPS 连接以网络交换机/路由器结束。 因此应用服务器无法实现https的路径。
service = new ....(url, SERVICE_NAME);
port = service.get...BasicHttpEndpoint();
BindingProvider provider = ((BindingProvider) port);
Map<String, Object> map = provider.getRequestContext();
String current = map.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY).toString();
map.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, current.replace("http:", "https:"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.