Ola pessoal, estou tentando fazer uma aplicação que tem como objetivo a pessoa digitar seu cpf e o programa vai no site da receita e pega o nome da pessoa baseado no cpf que ela digitou.
Procurando no google encontrei uma solução em php: http://cacovsky.wordpress.com/2011/02/06/php-curl-cookies-sessions-cpf-e-site-da-receita-federal/
Meu objetivo é pegar a imagem e o cookie do captcha, e enviar os parametros cpf, letras e cookie via post, para entao conseguir retornar o site com o nome da pessoa.
No codigo que fiz ele retorna a mesma pagina de consulta e nao a pagina do resultado…
public static void main(String args[]){
URL url;
try {
//url do captcha
url = new URL("http://www.receita.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image&v=" + new Date().getTime());
URLConnection conn = url.openConnection();
Image image = ImageIO.read(url);
//Exibir o captcha
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
//entrada do texto do captcha
String idLetras = JOptionPane.showInputDialog("Digite o captcha");
//capturar o cookie
String headerName;
String cookie = "";
for (int i=1; (headerName = conn.getHeaderFieldKey(i))!=null; i++) {
if (headerName.equals("Set-Cookie"))
cookie = conn.getHeaderField(i);
}
cookie = cookie.split(";")[0];
System.out.println(cookie);
//url da consulta
url = new URL("http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublica.asp");
//url = new URL("http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp");
conn = url.openConnection();
//cria os parametros
String parametros = URLEncoder.encode("txtCPF", "UTF-8") + "=" + URLEncoder.encode("cpfvalido", "UTF-8");
parametros += "&" + URLEncoder.encode("idLetra", "UTF-8") + "=" + URLEncoder.encode(idLetras, "UTF-8");
//parametros += "&" + URLEncoder.encode("idSom", "UTF-8") + "=" + URLEncoder.encode("", "UTF-8");
parametros += "&" + URLEncoder.encode("Enviar", "UTF-8") + "=" + URLEncoder.encode("Consultar", "UTF-8");
conn.setDoOutput(true);
conn.setDoInput(true);
//seta as propriedades de request
conn.setRequestProperty("Cookie", cookie);
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:6.0) Gecko/20100101 Firefox/6.0");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.setRequestProperty("Referer", "http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublica.asp?Error=1");
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(parametros);
wr.flush();
//pega o retorno
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String s = "";
while (null != ((s = rd.readLine()))) {
System.out.println(s);
}
wr.close();
rd.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
alguma luz?