Server returned HTTP response code: 400 for URL

Olá a todos…

Pessoal estou tentando enviar um POST para outra aplicação mas estou recebendo o seguinte erro:

java.io.IOException: Server returned HTTP response code: 400 for URL: https://148.91.92.44:443/TPIS-VALEACCENTURE-Incident
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1149)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
	at lerxml.ConectaUrl05.main(ConectaUrl05.java:67)

Meu Código:

package lerxml;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

import java.net.URLEncoder;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;

public class ConectaUrl05 {
    public ConectaUrl05() {
    }

    public static void main(String[] args) {
        ConectaUrl05 conectaUrl05 = new ConectaUrl05();
        
        try
                {
                    trustAllHttpsCertificates();
                    
                    HostnameVerifier hv = new HostnameVerifier()
                    {
                        public boolean verify(String urlHostName, SSLSession session)
                        {
                            System.out.println("Warning: URL Host: " + urlHostName + " vs. "
                                    + session.getPeerHost());
                            return true;
                        }
                    };
                    
                    HttpsURLConnection.setDefaultHostnameVerifier(hv);
         
                    URL url = new URL("https://148.91.92.44:443/TPIS-VALEACCENTURE-Incident");
                    URLConnection conn = url.openConnection();
                    HttpsURLConnection urlConn = (HttpsURLConnection) conn;
                    urlConn.setRequestProperty("Content-Type", "text/xml");
                    urlConn.setRequestProperty("Content-transfer-encoding", "UTF-8");
                    urlConn.setRequestProperty("Content-length", "36");
                    urlConn.setRequestMethod("POST");
                    urlConn.setDoOutput(true);
                    urlConn.setDoInput(true);
                    
                    conectaUrl05.debug("URL READY");
                    
                    String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
                    data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
                            
                    OutputStreamWriter wr = new OutputStreamWriter(urlConn.getOutputStream());
                    wr.write(data);
                    wr.flush();
                    
                    // Write to the output stream for server
                    PrintWriter out = new PrintWriter(urlConn.getOutputStream());
                    out.println("<test><from>my test client</from></test>");
                    out.close();
                    
                    BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
         
                    conectaUrl05.debug("INPUT READY");
                    
                    String str;
                    while( (str=in.readLine()) != null) {
                            System.out.println(str);
                    }
         
                    in.close();
         
                    conectaUrl05.debug("EVERYTHING IS DONE!!!");
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
    }
    
    private void debug(String s)
        {
            System.out.println("[DEBUG] -- TestServlet -- \n" + s);
        }

            
            private static void trustAllHttpsCertificates() throws Exception
        {
     
            //  Create a trust manager that does not validate certificate chains:
     
            javax.net.ssl.TrustManager[] trustAllCerts =
     
            new javax.net.ssl.TrustManager[1];
     
            javax.net.ssl.TrustManager tm = new miTM();
     
            trustAllCerts[0] = tm;
     
            javax.net.ssl.SSLContext sc =
     
            javax.net.ssl.SSLContext.getInstance("SSL");
     
            sc.init(null, trustAllCerts, null);
     
            javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(
     
            sc.getSocketFactory());
     
        }
        
}

class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager{

	public java.security.cert.X509Certificate[] getAcceptedIssuers(){
		return null;
	}

	public boolean isServerTrusted(	java.security.cert.X509Certificate[] certs){
		return true;
	}

	public boolean isClientTrusted(java.security.cert.X509Certificate[] certs){
		return true;
	}

	public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
        throws java.security.cert.CertificateException
        {
                    return;
        }
    
            public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
        throws java.security.cert.CertificateException
        {
                    return;
        }
}

Alguêm tem alguma idéia?

Obrigado.