Olá pessoal
estou com o problema de Bad Request quanto tento me comunicar com o webservice da Receita
se alguém poder me ajudar
segue o código
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", "Certificado.pfx");
System.setProperty("javax.net.ssl.keyStorePassword", "***");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "nfe.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
URL url = new URL("https://homologacao.cte.sefaz.rs.gov.br/ws/ctestatusservico/CteStatusServico.asmx");
String dados ="<consStatServCte xmlns=\"http://www.portalfiscal.inf.br/cte\" versao=\"1.03\">"+
" <tpAmb>1</tpAmb>"+
" <xServ>STATUS</xServ>"+
" </consStatServCte>";
String soap="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
" <soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"+
" <soap12:Header>"+
" <cteCabecMsg xmlns=\"http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico\">"+
" <cUF>42</cUF>"+
" <versaoDados>1.03</versaoDados>"+//1.01
" </cteCabecMsg>"+
" </soap12:Header>"+
" <soap12:Body>"+
" <cteDadosMsg xmlns=\"http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico\">"+
dados+
" </cteDadosMsg>"+
"</soap12:Body>"+
"</soap12:Envelope>";
System.out.println(soap);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.addRequestProperty("Request-Method", "POST");
connection.addRequestProperty("Content-Type", "text/xml");
connection.addRequestProperty("SOAPAction", "http://www.portalfiscal.inf.br/cte/wsdl/CteStatusServico/cteStatusServicoCT");
connection.addRequestProperty("Content-Length", soap.length() + "");
connection.setDoOutput(true);
connection.setDoInput(true);
OutputStream out = connection.getOutputStream();
out.write(soap.getBytes());
out.flush();
connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK || connection.getResponseCode() == HttpURLConnection.HTTP_ACCEPTED) {
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuffer newData = new StringBuffer();
String s = "";
while (null != ((s = br.readLine()))) {
newData.append(s);
}
br.close();
System.out.println(new String(newData));
} else {
System.out.println(connection.getResponseCode() + "/" + connection.getResponseMessage());
}
connection.disconnect();
Muito Obrigado