我在jboss容器(相同的Unix框)中部署了两个应用程序。如果我收到来自app1的请求,则需要对app2提出相应的请求。
例如:
如果app1请求为:http :
//example.com/context? param1=123,
那么我需要提取“ http://example.com/ ”,以便可以对第二个应用程序提出请求。
我尝试使用:
HttpServletRequest.getServerName() &
HttpServletRequest.getServerPort() & \
HttpServletRequest.getHeader("host")
方法,但请求可能来自http或https。
如果还有其他更好的方法,请告诉我。谢谢!
您可以使用HttpServletRequest.getScheme()
来检索“ http”或“ https”。
连同它一起使用HttpServletRequest.getServerName()
应该足以重建所需的URL部分。
如果您使用标准端口(HTTP为80,HTTP为443),则无需在URL中显式放置端口。
编辑
:如果您的servlet容器位于终止SSL的反向代理或负载平衡器的后面,则这会有些棘手,因为将请求作为纯http转发到servlet容器。您有几种选择:
1)HttpServletRequest.getHeader("x-forwarded- proto")
改为使用;仅当您的负载平衡器正确设置了标头(Apache应该afaik)时,此方法才有效。
2)在JBoss /
Tomcat中配置一个RemoteIpValve,它将getScheme()
按预期工作。同样,这仅在负载均衡器设置了正确的标头时才有效。
3)如果上述方法不起作用,则可以在Tomcat /
JBoss中配置两个不同的连接器,一个用于http,另一个用于https,如本文所述。
问题内容: 我认为ServletContext可能提供一种方法。ServletContext的getAttribute()方法是否提供任何帮助,即是否有需要帮助的属性名称(可能是“ host”,“ port”)。 这样做的原因是,我希望我的应用程序可以在任何部署的地方运行,而且在某一时刻,我必须允许用户单击指向文件服务器上某个位置的链接。因此,我需要按主机和端口进行引用,并且不能使用内部引用。 问
问题内容: 我正在尝试让我的函数返回http get请求,但是,无论如何,它似乎在?scope中丢失了。我对Node.js不熟悉,因此不胜感激 问题答案: 当然,您的日志会返回:您在完成请求之前先进行日志。问题不是范围,而是 异步性 。 是异步的,这就是为什么它将回调作为参数的原因。做您在回调中要做的事情(传递给的):
本文向大家介绍php如何获取Http请求,包括了php如何获取Http请求的使用技巧和注意事项,需要的朋友参考一下 php获取Http请求的方法 $_SERVER介绍 $_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。 获取Http请求的方法示例 实例补充: socket方式 使用套接字建立连接,拼接 HTTP
我试图最小化我的webapp的配置,我要删除的事情之一是端口号映射: http:80- 因为配置已经存在于conf/server中。xml,我不想在我的应用程序中重复这些设置。必须更改(并记住更改)多个配置文件是一种痛苦。此外,只要应用程序支持http和https,就不应该关心它部署到了什么环境/容器中。 我在我的网站上配置了以下内容。xml,但除了重定向之外,我还需要能够构建https URL:
问题内容: 我现在正在尝试使用Java Cord中的HTTP请求获取JSON对象。 我想知道如何在下面的代码中获取响应或JSON对象。 请告诉我。 (在此程序中,我尝试获取文章“ New York”的Wikipedia类别。) 问题答案:
问题内容: 我正在使用python中的请求库发出HTTP请求,但我需要来自响应http请求的服务器的IP地址,因此,我试图避免进行两次调用(可能与响应的IP地址不同)请求。 那可能吗?是否有任何python http库允许我这样做? ps:我还需要发出HTTPS请求并使用经过身份验证的代理。 更新1: 例: 然后,我想知道响应中的方法或属性将哪些IP地址请求连接到了。在其他库中,我可以通过找到袜子