收听HTTP请求

时间:2011-04-10 16:25:25

标签: java sockets proxy httpwebrequest

我有一项任务,我需要创建一个代理服务器,它将操纵它获得的一些请求/响应,实现缓存等。

对于初学者,我想创建最简单的代理,它只传递所有请求和响应。我已经在线完成了一些搜索,我对如何在某个端口监听请求并获取HTTP请求感到困惑。我偶然发现了课程SocketServerSocketHttpURLConnection,但我不确定所有这些是如何互动的。我试着阅读文档,但它们都交织在一起,有点难以理解。

您是否可以指出我应该使用哪些类进行此分配,并且可能共享一个用于侦听端口,获取HTTP请求标头等的片段?

2 个答案:

答案 0 :(得分:5)

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

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

听起来不错?

答案 1 :(得分:1)

以下是一些介绍性的Java套接字材料:http://www.oracle.com/technetwork/java/socket-140484.html