ola pessoal,
preciso desenvolver um programinha que simule um proxy simples como trabalho de faculdade…
peguei um codigo simples na internet q deveria acessar o servidor da pagina web, pegar os htlmls e etc… e passar para o navegador:
[code]
import java.net.;
import java.io.;
import java.util.;
import org.apache.commons.io.;
public class Main {
public static void main(String[] args) throws Exception {
ServerSocket s = new ServerSocket(123);
while (true) {
Socket ac = s.accept();
System.out.println("Recebendo requerimento browser com proxy...");
BufferedReader rrad = new BufferedReader(new InputStreamReader(ac.getInputStream()));
OutputStreamWriter rsnd = new OutputStreamWriter(ac.getOutputStream());
StringBuilder prxreq2 = new StringBuilder();
String temp;
String host = "";
while ( (temp = rrad.readLine()) != null)
{
// if (! temp.equals(""))
//{
if (temp.indexOf("Accept-Encoding") == -1) prxreq2.append(temp); prxreq2.append("\r\n");
if (temp.indexOf("Host:") > -1) host = temp.split(": ")[1];
//}
}
prxreq2.append("\r\n");
String prxreq = new String(prxreq2);
System.out.println(prxreq);
System.out.println("Re-enviando para o servidor...");
Socket cl = new Socket(host,80);
OutputStreamWriter d = new OutputStreamWriter(cl.getOutputStream());
d.write(prxreq);
d.flush();
System.out.println("Esperando resposta do servidor...");
String resp = IOUtils.toString(cl.getInputStream());
System.out.println(resp);
d.close();
cl.close();
System.out.println("Enviando resposta do servidor para o browser...");
rsnd.write(resp);
rsnd.flush();
rsnd.close();
ac.close();
}
}
}[/code]
mas nao estou conseguindo fazer funcionar…
eu usei o firefox pra testar, fui em ferramentas/opções/configurar conexao/configuração manual de proxy/sockys = 127.0.0.1, porta = 123 e sokcs v5.
no que eu estou errando?
alguem pode me ajudar a fazer este proxy?
flw