Estoy tratando de agregar encabezado para mi solicitud usando HttpUrlConnection
pero 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).authorization
a la cadena vacía. Siusername
opassword
es nulo,authorization
será la cadena vacía, no nula. Por lo tanto, la finalif
se 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
postData
en 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
encodedBytes
variable esbyte[]
unString
valor 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