在Enfinity环境中,我想确定我的网站现在是运行在HTTP还是HTTPS上。我的方法是使用request.getRequestURL().toString();获取URL,然后测试字符串是否有https://。地址栏中的URL如下所示:
https://test.example.com/is-bin/INTERSHOP.enfinity/WFS/Example-ExampleSite/en_US/-/USD/Pipeline-Start但是,代码的结果如下:
http://test.example.com/servlet/Beehive/WFS/Example-ExampleSite/en_US/-/USD/Pipeline-Start我并不真正关心URL上的差异,但我现在关心的是从https到http的变化。即使我从ApplicationFrame检索并打印URL,也会发生相同的结果。有没有人可以帮助解释为什么会发生这样的变化,并且可以提供解决办法来获得Enfinity中的原始URL (或者至少检测URL是在http还是https中)?这个网站使用url重写,但我认为在两个url结果中都不涉及URL写入。谢谢。
发布于 2015-03-05 08:51:31
如果您只想要http或https部分,我建议您不要获得完整的url,而只需要该方案。
请求方案定义了url协议是http或https。在代码中,您可以使用request.getScheme()获得该方案
在adition中,您可以通过(通过使用request.getServerName()获取url的域)获取服务器名。
您可以使用enter代码获得端口,这里是request.getServerPort()
https://stackoverflow.com/questions/28873369
复制相似问题