プロキシ サーバーを構築しようとしていますが、最近は https に取り組んでいます。この投稿で指定されているとおり。Connect リクエストをトンネリングしようとしました。私のコードは次のとおりです。
private boolean handleConnect(HttpServletRequest req,HttpServletResponse response){
String uri=req.getRequestURI();
String port="";
String host="";
int c=uri.indexOf(":");
if (c >= 0){
port = uri.substring(c + 1);
host = uri.substring(0,c);
if (host.indexOf('/') > 0)
host = host.substring(host.indexOf('/') + 1);
}
// Make Asyncronous connection
try{
InetSocketAddress inetAddress = new InetSocketAddress(host,Integer.parseInt(port));
{
InputStream in=req.getInputStream();
OutputStream out=response.getOutputStream();
if(true){
Socket sock=new Socket(host,Integer.parseInt(port));
IO.copy(in, sock.getOutputStream());
IO.copy(sock.getInputStream(), out);
if(!sock.getKeepAlive()){
sock.close();
}
}
}
}
catch(Exception ex){
ex.printStackTrace();
return false;
}
return true;
}
のコード結果java.net.UnknownHostException: google.com.np
と のhttps://google.com.np
タイムアウトhttps://Facebook.com
。何故ですか ??Connect HTTP リクエストをトンネリングする最善の方法を提案してください。