Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中通过代理发送原始http请求_Java_Http_Proxy - Fatal编程技术网

如何在Java中通过代理发送原始http请求

如何在Java中通过代理发送原始http请求,java,http,proxy,Java,Http,Proxy,基本上,我正在尝试为http请求编写代理。我已经能够相当轻松地设置服务器,并且在将浏览器定向到代理而不是直接连接之后,它正在接收从浏览器发送的原始http请求 我现在的问题是,我现在需要能够从代理发送原始请求,以从目标服务器检索响应。我一直在尝试深入研究Apache的HttpClient,但就我所见,我仍然不确定如何使用它来促进发送原始请求 有什么建议吗?除了识别CONNECT命令之外,在yur代理中根本不需要任何支持HTTP的代码。其余部分只是向后和向前复制字节。您可以为此(每个连接)使用两个

基本上,我正在尝试为http请求编写代理。我已经能够相当轻松地设置服务器,并且在将浏览器定向到代理而不是直接连接之后,它正在接收从浏览器发送的原始http请求

我现在的问题是,我现在需要能够从代理发送原始请求,以从目标服务器检索响应。我一直在尝试深入研究Apache的HttpClient,但就我所见,我仍然不确定如何使用它来促进发送原始请求


有什么建议吗?

除了识别CONNECT命令之外,在yur代理中根本不需要任何支持HTTP的代码。其余部分只是向后和向前复制字节。您可以为此(每个连接)使用两个线程,也可以使用NIO在一个线程中完成所有操作。

除了识别CONNECT命令之外,您根本不需要yur代理中的任何HTTP感知代码。其余部分只是向后和向前复制字节。您可以为此(每个连接)使用两个线程,也可以使用NIO在一个线程中完成所有操作。

看起来您需要做的就是创建到远程服务器的连接。根据您重新路由浏览器请求的方式,您可能需要自己实现DNS查找。正如EJP所说,只需将字节从一个流复制到另一个流,然后将响应复制回来。

看起来您所需要做的就是创建到远程服务器的连接。根据您重新路由浏览器请求的方式,您可能需要自己实现DNS查找。正如EJP所说,只需将字节从一个流复制到另一个流,然后将响应复制回来。

您所说的“CONNECT”命令是什么意思?我正在通过我的代理运行我的浏览器,我的代理正在接收原始http请求,例如“GET http/1.1…”,我现在想将这些请求发送到目标服务器(本例中为google.com)。好的,您可以从第一行中接收的命令中识别tagetbhost:port,连接到它,然后将客户端发送给服务器的每个字节发送给客户端。除了报告连接错误和正确处理关机之外,没有更多内容。您所说的“连接”命令是什么意思?我正在通过我的代理运行我的浏览器,我的代理正在接收原始http请求,例如“GET http/1.1…”,我现在想将这些请求发送到目标服务器(本例中为google.com)。好的,您可以从第一行中接收的命令中识别tagetbhost:port,连接到它,然后将客户端发送给服务器的每个字节发送给客户端。除了报告连接错误和正确处理关机之外,没有更多内容。