Me quieren descargar el archivo mp3 desde la url : «http://upload13.music.qzone.soso.com/30671794.mp3» yo siempre tengo java.io.IOException: Servidor devuelve código de respuesta HTTP: 403 de la dirección URL. Pero se trata de aceptar cuando se abra la url con el explorador. A continuación es parte de mi código:

BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
    URL url = new URL(link);

    URLConnection urlConn = url.openConnection();
    urlConn.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");

    String contentType = urlConn.getContentType();

    System.out.println("contentType:" + contentType);

    InputStream is = urlConn.getInputStream();
    bis = new BufferedInputStream(is, 4 * 1024);
    bos = new BufferedOutputStream(new FileOutputStream(
    fileName.toString()));​

Alguien me podría ayudar? Gracias de antemano!

OriginalEl autor Adao | 2010-10-06

5 Comentarios

  1. 39

    También puede utilizar

    System.setProperty("http.agent", "Chrome");

    que trabajó para mí.

    //Actualización de

    Explicación

    Porque HttpURLConnection lee la propiedad «http.agente» si se establece.
    Puedes leerlo aquí: https://www.innovation.ch/java/HTTPClient/advanced_info.html

    O puede buscar en el código fuente de la HttpURLConnection Clase:

    String agent = java.security.AccessController.doPrivileged(new sun.security.action.GetPropertyAction("http.agent"));

    Esta es la magia de buddy. Funciona
    Funcionan A La Perfección….!
    Gracias me ayuda!
    Muchas gracias, este debe ser aceptado respuesta! Trabajó para mí!
    Wow!!! Puede usted explicar la razón detrás?

    OriginalEl autor Montezuma

  2. 24

    Lugar de utilizar URLConnection en java, si utiliza HttpURLConnection debería camino para acceder a la página web solicitada de java. Pruebe el siguiente código:

     HttpURLConnection httpcon = (HttpURLConnection) url.openConnection(); 
     httpcon.addRequestProperty("User-Agent", "Mozilla/4.76"); 

    Normal de java con urlConnection no será aceptado para acceder a internet. Para acceder al explorador que se necesita llevar a cabo una búsqueda sin theexception HTTP response code : 403 for URL


    EDITAR (@Mordejai): No hay necesidad de hacer el casting, sólo tiene que añadir el agente de usuario.

    Casting para HttpURLConnection no va a cambiar nada aquí, el objeto devuelto por url.openConnection() es el mismo, si se convierten o no.
    ¿Qué? «Normal java utilizando urlConnection no será aceptado para acceder a internet» Esto es incorrecto y engañoso. De fundición no cambia lo que el objeto subyacente es, y el OP ya está marcando el Usuario-solicitud de Agente de la propiedad… ¿Cómo es que esto de tener tantos upvotes?
    La razón de por qué tiene tantos upvotes es porque realmente solucionar el problema de si la dirección url de conexión no es la adición de la petición de la propiedad, y como yo, personas de la búsqueda en google y probar este y funciona, pero sería demasiado trabajo si sólo se establece la URLConnection.addRequestProperty("User-Agent", "Mozilla/4.76")
    funciona como un encanto, gracias
    cftc.gov emitido este error (403) para el primer tiempo de ayer. Para resolver el problema, le fue suficiente para añadir conn.addRequestProperty de Usuario(«user-Agent», «Chrome»); donde conn denota simple URLConnection. Gracias por la ayuda!

    OriginalEl autor Saratha

  3. 4

    El problema está dado por el código de Estado. 403 significa en realidad «Prohibido» e implica La solicitud fue negada por una razón el servidor no quiere (o no tiene medios para) indicar al cliente.

    el problema se encuentra en el lado del servidor.

    OriginalEl autor arthur

  4. 2

    Cuando accedo a la URL con mi navegador me sale 403. Tal vez usted ha iniciado sesión en la web con tu navegador?

    Si ese es el caso, usted necesita para duplicar la cookie de tu navegador y enviar a lo largo, tal vez incluso hacer más para replicar su navegador de la firma en caso de que el sitio tiene cualquier cheque extra.

    Puede establecer la cookie mediante la adición de:

    urlConn.setRequestProperty("Cookie", "foo=bar"); 

    Donde foo=bar es el par clave-valor que usted encontrará cuando usted localizar el sitio de la cookie en su navegador.

    OriginalEl autor Alexander Sagen

  5. 0

    También me gustaría comprobar si el servidor se está ubicado el recurso tiene una ACL o similares en el sitio, nosotros sólo resolvió un «java.io.IOException: 403» problema de esta manera.

    Sucede que 403 errores son muy genéricos y usted puede estar seguro de la fuente, como puede ser cualquier cosa.

    OriginalEl autor runlevel0

Dejar respuesta

Please enter your comment!
Please enter your name here