style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Consumir un Web service rest con java

Hola de nuevo a toda la comunidad,
Queria ver si alguien me puede ayudar a saber como consumir un servicio web rest, ya logro comunicarme con el servicio pero necesito mandar una autenticación y una body ( un xml que recibiré de algún lado) tengo el siguiente código

public void webs(String xml ) throws IOException
        {
               
                String uri ="direccion de webservice https";
               
                URL url = new URL(uri);
                HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

                connection.setRequestMethod("POST");
                connection.setRequestProperty("Authorization", "Basic "+ Base64.encode(("usuario" + ":" + "contraseña").getBytes()));
                connection.setRequestProperty("content-type", "text/xml; charset=UTF-8");

//              Aqui me gustaria mandarle el cuerpo pero no es correcto
                connection.setRequestProperty("body", archivo);
               
                connection.setConnectTimeout(10000);
                connection.connect();
               
                System.out.println("Codigo : " + connection.getResponseCode());
               
        }

Use este modo por que alguna vez logre hacer algo parecido con python se que no es igual pero pensé en empezar por ahí o usar apache xcf

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

output

Necesitas indicar:

connection.setDoOutput(true);

Y luego escribir al stream de salida de la conexión:

connection.setRequestProperty("Content-Length", Integer.toString(archivo.length));
connection.getOutputStream().write(archivo); //suponiendo que archivo sea tipo byte[]
connection.getOutputStream().flush();

No necesitas invocar connect() en ningún momento cuando haces esto. Simplemente después de escribir al stream, empiezas a leer la respuesta del stream de entrada. Puedes checar la longitud de la misma, si te la devuelve el server, usando connection.getContentLength().

Gracias

Muchas gracias si tenias toda la razón

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">