Estoy tratando de agregar encabezado para mi solicitud usando HttpUrlConnectionpero el método setRequestProperty()no parece funcionar. El lado del servidor no recibe ninguna solicitud con mi encabezado.
HttpURLConnection hc;
try {
String authorization = "";
URL address = new URL(url);
hc = (HttpURLConnection) address.openConnection();
hc.setDoOutput(true);
hc.setDoInput(true);
hc.setUseCaches(false);
if (username != null && password != null) {
authorization = username + ":" + password;
}
if (authorization != null) {
byte[] encodedBytes;
encodedBytes = Base64.encode(authorization.getBytes(), 0);
authorization = "Basic " + encodedBytes;
hc.setRequestProperty("Authorization", authorization);
}

connect()a URLConnection?connection.setRequestMethod("GET");(o POST o lo que quieras).authorizationa la cadena vacía. Siusernameopasswordes nulo,authorizationserá la cadena vacía, no nula. Por lo tanto, la finalifse ejecutará, pero la"Authorization"propiedad se configurará como vacía, me parece.Respuestas:
He usado el siguiente código en el pasado y había funcionado con la autenticación básica habilitada en TomCat:
Puedes probar el código anterior. El código anterior es para POST, y puede modificarlo para GET
fuente
postDataen tu ejemplo?String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());Solo porque no veo este bit de información en las respuestas anteriores, la razón por la que el fragmento de código publicado originalmente no funciona correctamente es porque la
encodedBytesvariable esbyte[]unStringvalor y no un valor. Si pasa elbyte[]a anew String()como se muestra a continuación, el fragmento de código funciona perfectamente.fuente
Si está utilizando Java 8, use el código a continuación.
fuente
Finalmente esto funcionó para mí
fuente
Su código está bien. También puede usar lo mismo de esta manera.
Su código de respuesta de devolución 200 si la autorización es exitosa
fuente
Con RestAssurd también puede hacer lo siguiente:
fuente
given()supone que es?Paso 1: obtener el objeto HttpURLConnection
Paso 2: Agregue encabezados a HttpURLConnection usando el método setRequestProperty.
Enlace de referencia
fuente