Java 侦听HTTP请求

Java 侦听HTTP请求,java,sockets,proxy,httpwebrequest,Java,Sockets,Proxy,Httpwebrequest,我有一个任务,我需要在其中创建一个代理服务器,它将处理它获得的一些请求/响应,实现缓存等 首先,我想创建一个最简单的代理,它只传递所有请求和响应。我在网上做了一些搜索,对于如何在某个端口侦听请求并获取HTTP请求,我有点困惑。我偶然发现了类Socket,ServerSocket,HttpURLConnection,但我不确定它们是如何相互作用的。我试着阅读这些文档,但它们相互交织,有点难以理解 你能给我指出正确的方向吗?关于我应该使用哪些类来完成这个任务,你可以分享一个用于监听端口、获取HTTP

我有一个任务,我需要在其中创建一个代理服务器,它将处理它获得的一些请求/响应,实现缓存等

首先,我想创建一个最简单的代理,它只传递所有请求和响应。我在网上做了一些搜索,对于如何在某个端口侦听请求并获取HTTP请求,我有点困惑。我偶然发现了类
Socket
ServerSocket
HttpURLConnection
,但我不确定它们是如何相互作用的。我试着阅读这些文档,但它们相互交织,有点难以理解


你能给我指出正确的方向吗?关于我应该使用哪些类来完成这个任务,你可以分享一个用于监听端口、获取HTTP请求头等的代码片段吗?

好吧,我只能假设你的代理将是一个服务器套接字,监听HTTP端口上的请求。通过服务器套接字输入流读取请求。检查请求是否符合代理规则后,您将打开到真实HTTP服务器的HttpConnection,并使用HTTP连接中的输出流转发客户端的请求,然后使用HTTP连接输入流读取真实HTTP服务器的响应,您最终将使用套接字的输出流将其转发回客户端

在代理中,由于您拦截请求和响应,因此可以在转发之前对它们进行操作


听起来不错?

以下是一些介绍Java套接字的材料: