Ola pessoal estou com problemas para enviar uma requisicao(consulta de Cpf) para o site da receita, estou enviando as informações corretas(Cookie, captcha, viewstate e cpf) mas a requisicao esta me retornando sempre um erro dizendo que o catpcha foi digitado errado.Alguem sabe o que pode esta acontecendo.
Obsv: se alquem se interessar posso pastar as classes que fazem parte dessa aplicação…
Obrigado !!
public class Response {
private final String stringUrl = "http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp ";
private final URL url;
private final HttpURLConnection conn;
private final StringBuilder strRequisicao;
private String parametros;
public Response() throws MalformedURLException, IOException {
url = new URL(stringUrl);
conn = (HttpURLConnection) url.openConnection();
strRequisicao = new StringBuilder();
}
public void reciverObjRequest(ObjRequest objRequest) throws IOException {
buildRequest(objRequest);
setPropriedades(objRequest);
}
private void buildRequest_(ObjRequest objRequest) {
// String viewstate = objRequest.getViewState();
// strRequisicao.append(" txtCPF=").append("[telefone removido]")
// .append("&catpcha=").append(JOptionPane.showInputDialog("Entre com o catpcha"))
// .append("&captchaAudio=")
// .append("&viewstate=").append(viewstate)
// .append("&Enviar=").append("Consultar");
}
public void buildRequest(ObjRequest objRequest) throws UnsupportedEncodingException {
String viewstate = objRequest.getViewState();
String numeroCpf = objRequest.getNumeroCpf();
parametros = URLEncoder.encode("txtCPF", "ISO-8859-1") + "=" + URLEncoder.encode(numeroCpf, "ISO-8859-1");
parametros += "&" + URLEncoder.encode("catpcha", "ISO-8859-1") + "=" + URLEncoder.encode(JOptionPane.showInputDialog("Entre com o catpcha"), "ISO-8859-1");
parametros += "&" + URLEncoder.encode("captchaAudio", "ISO-8859-1") + "=" + URLEncoder.encode("", "ISO-8859-1");
parametros += "&" + URLEncoder.encode("viewstate", "ISO-8859-1") + "=" + URLEncoder.encode(viewstate, "ISO-8859-1");
parametros += "&" + URLEncoder.encode("Enviar", "ISO-8859-1") + "=" + URLEncoder.encode("Consultar", "ISO-8859-1");
System.out.println(stringUrl + parametros);
}
private void setPropriedades(ObjRequest objRequest) throws ProtocolException, IOException {
PropertiesConnect propertiesConnect = new PropertiesConnect(conn);
propertiesConnect.setPropertiesOutptInput(PropertiesConnect.ACTION_IN);
propertiesConnect.enablePropertiesCookie(objRequest);
propertiesConnect.enableMetodoProperties(1);
conn.setRequestProperty("Content-Length", String.valueOf(parametros.length()));
}
public void sendRequestHttp() throws IOException {
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(parametros);
wr.flush();
}
public void printResultHtml() throws IOException {
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream(),"ISO-8859-1"));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line).append('\n');
}
System.out.println(sb.toString());
}
}