如何使用指定的端口号发送 Java HTTP 请求
How to send Java HTTP request using a specified port number
我有两个应用程序需要使用 HTTP 相互通信。目前每一个服务器都在使用HttpServer class and makes requests using Apaches HTTP client library。
其中一个应用程序在运行之前将知道其他端口地址,例如端口 8000 意味着它使用它来发出可以由其他应用程序处理的 HTTP get 请求。但是,如果第二个应用程序要向第一个应用程序发送请求,它将不知道将响应发送到哪个端口。发生这种情况是因为第一个应用程序将使用 HTTP 客户端库发送请求,该库将动态 select 一个端口,例如端口 6543,这意味着第二个应用程序无法保存它并在以后使用它。
示例:
应用程序 1 在本地主机上加载端口 8000。
应用程序 2 在端口 8050 的本地主机上加载。
应用程序 1 知道应用程序 2 在 8050 上并发送由应用程序 2 处理的请求。
应用程序 2 想要向应用程序 1 发送请求,但它不知道其端口,因为之前的请求是使用动态分配的端口发送的。
除了第一个应用程序将其服务器端口号发送给应用程序之外,还有其他情况吗?
我只做了几天 ago.Check 一些链接:
http://www.drdobbs.com/jvm/making-http-requests-from-java/240160966
我不确定你到底想做什么。如果客户端发送 HTTP 请求,它实际上可以从同一个连接读取响应,为什么要通过不同的连接发送它并产生开销。如果你想实现它,那么除了 client-servers 为他们的请求响应交换端口信息并且他们都充当客户端+服务器之外别无他法。可以在请求中使用 HTTP header 交换此信息。
我相信您在这里对 TCP 和 HTTP 端口感到困惑。
However the second application will get the request, process it and
not know which port to send the response to because the HTTP client
library will dynamically select a port, e.g. port 6543
您的服务器不仅仅是选择一个动态端口来发送响应,它是用于发送响应的底层 TCP 任意端口。 TCP 通常是与 HTTP 协议一起使用的底层传输协议。 TCP 客户端发送一个名为 'client port' 的 header 来告诉服务器他们希望在哪里接收响应。这些端口号是由客户端从一系列空闲端口中随机选择的。
我有两个应用程序需要使用 HTTP 相互通信。目前每一个服务器都在使用HttpServer class and makes requests using Apaches HTTP client library。
其中一个应用程序在运行之前将知道其他端口地址,例如端口 8000 意味着它使用它来发出可以由其他应用程序处理的 HTTP get 请求。但是,如果第二个应用程序要向第一个应用程序发送请求,它将不知道将响应发送到哪个端口。发生这种情况是因为第一个应用程序将使用 HTTP 客户端库发送请求,该库将动态 select 一个端口,例如端口 6543,这意味着第二个应用程序无法保存它并在以后使用它。
示例:
应用程序 1 在本地主机上加载端口 8000。
应用程序 2 在端口 8050 的本地主机上加载。
应用程序 1 知道应用程序 2 在 8050 上并发送由应用程序 2 处理的请求。
应用程序 2 想要向应用程序 1 发送请求,但它不知道其端口,因为之前的请求是使用动态分配的端口发送的。
除了第一个应用程序将其服务器端口号发送给应用程序之外,还有其他情况吗?
我只做了几天 ago.Check 一些链接:
http://www.drdobbs.com/jvm/making-http-requests-from-java/240160966
我不确定你到底想做什么。如果客户端发送 HTTP 请求,它实际上可以从同一个连接读取响应,为什么要通过不同的连接发送它并产生开销。如果你想实现它,那么除了 client-servers 为他们的请求响应交换端口信息并且他们都充当客户端+服务器之外别无他法。可以在请求中使用 HTTP header 交换此信息。
我相信您在这里对 TCP 和 HTTP 端口感到困惑。
However the second application will get the request, process it and not know which port to send the response to because the HTTP client library will dynamically select a port, e.g. port 6543
您的服务器不仅仅是选择一个动态端口来发送响应,它是用于发送响应的底层 TCP 任意端口。 TCP 通常是与 HTTP 协议一起使用的底层传输协议。 TCP 客户端发送一个名为 'client port' 的 header 来告诉服务器他们希望在哪里接收响应。这些端口号是由客户端从一系列空闲端口中随机选择的。