Estoy tratando de obtener una imagen de una cámara IP mediante HTTP. La cámara requiere la autenticación básica HTTP, por lo que hay que añadir la cabecera de la solicitud correspondiente:Establecer encabezados de solicitud HTTP personalizados en un objeto de URL no funciona
URL url = new URL("http://myipcam/snapshot.jpg");
URLConnection uc = url.openConnection();
uc.setRequestProperty("Authorization",
"Basic " + new String(Base64.encode("user:pass".getBytes())));
// outputs "null"
System.out.println(uc.getRequestProperty("Authorization"));
tarde estoy pasando el objeto url
a ImageIO.read()
, y, como se puede adivinar, estoy consiguiendo un HTTP 401 no autorizado, aunque user
y pass
son correctos.
¿Qué estoy haciendo mal?
También he intentado new URL("http://user:[email protected]/snapshot.jpg")
, pero eso tampoco funciona.
Gracias, ahora entiendo el motivo para obtener 'null'. Pero, ¿por qué devuelve HTTP 401? ¿Es posible que la propiedad "Autorización" no esté configurada en absoluto? –
@Blagovest Buyukliev, si 'uc amplía HttpURLConnection', a continuación, enchúfelo a' HttpURLConnection' y obtenga 'InputStream' del error llamando' getErrorStream() '. Eso contiene el mensaje del error HTTP 401. Aparte de eso, no puedo ayudarte. –