在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
我并不十分关心网址的差异,但我现在关心的是从https到http的变化。即使我从ApplicationFrame
检索并打印网址,也会发生相同的结果。是否有人可以帮助解释为什么会这样改变,并且可以提供解决方法以获取Enfinity中的原始URL(或者至少检测URL是否为http或https)?这个网站使用网址重写,但我认为URL结果中没有涉及网址写入。感谢。
答案 0 :(得分:0)
如果你只想要http或https部分,我会觉得没有得到完整的网址而只是方案。
请求方案定义了url协议为http或https的wethere。
在代码中,您可以使用request.getScheme()
来获得方案
在adition中,您可以使用request.getServerName()
来获取服务器名称(您的网址的域名),您可以在此处使用输入代码获取端口request.getServerPort()