Página 1 de 1

problema con status code + java

Publicado: 04 Oct 2012, 14:12
por MichBukana
Hola buenas, tengo un problema y es que estoy con una aplicacion para obtener el status code en una petición el caso es que debuggeando con chrome me tira el status code 301 sin embargo con esta aplicación en java me tira el status code 200, haber si me hechan una mano. esta es la url que uso [Enlace externo eliminado para invitados]

Salu2! y gracias de antemano

Imagen


Código: Seleccionar todo

import java.net.*;
import java.io.*;

public class MainClass {
    public static void main(String args[]) {
        URL u;
        URLConnection uc;
        String header;
        String nextLine; 

        URLConnection urlConn = null; 
        InputStreamReader  inStream = null; 
        BufferedReader buff = null; 

        try {
            u = new URL("http://java.sun.com/jdc");
            URLConnection connection = u.openConnection();

            connection.connect();

            

            // Cast to a HttpURLConnection
            if ( connection instanceof HttpURLConnection)
            {
                HttpURLConnection httpConnection = (HttpURLConnection) connection;

                int code = httpConnection.getResponseCode();

                
                
                System.out.println(code);
                // do something with code .....
            }
            else
            {
                System.err.println ("error - not a http request!");
            }
            uc = u.openConnection();
            for (int j = 1;; j++) {
                header = uc.getHeaderField(j);
                if (header == null)
                    break;
                System.out.println(uc.getHeaderFieldKey(j) + " " + header);
            }

            // Create the URL obect that points 
            // at the default file index.html 

            urlConn = u.openConnection(); 
            inStream = new InputStreamReader( 
                urlConn.getInputStream()); 
            buff= new BufferedReader(inStream); 

            // Read and print the lines from index.html 
            while (true){ 
                nextLine =buff.readLine(); 
                if (nextLine !=null){ 
                    System.out.println(nextLine); 
                } 
                else{ 
                    break; 
                } 
            } 

        } catch (MalformedURLException e) {
            System.err.println("not a URL I understand.");
        } catch (IOException e) {
            System.err.println(e);
        }
    }

}

           

Re: problema con status code + java

Publicado: 04 Oct 2012, 17:03
por adwind
A simple vista ese error (302) es de redirección de pagina. ya que si entras a esa url te manda a la de Oracle.
Supongo que la aplicación en java te regresa 202 por que la conexión fue aceptada. para que a conexión este correcta debe regresar el código 200

[Enlace externo eliminado para invitados]

Re: problema con status code + java

Publicado: 04 Oct 2012, 18:27
por MichBukana
tal vez no me explique bien y es que hice con prisas el post, lo que busco adwind es obtener el codigo 301 que es la primera peticion get que realiza y es que chrome si la pilla pero con la aplicación java solo obtengo el codigo 200 y el source de la web a la que se ha redirigido (aunque el source no es lo que me interesa, lo tengo ahi para comprobar de que status code es).

la aplicación me devuelve 200 pero este 200 hace referencia a este index [Enlace externo eliminado para invitados] al que se le a redirigido no a [Enlace externo eliminado para invitados] ya que este con chrome vemos que devuelve 301 y este es el que deseo pillar con java.

Salu2!

Re: problema con status code + java

Publicado: 04 Oct 2012, 20:28
por adwind

Código: Seleccionar todo


import java.net.*;
import java.io.*;

public class mich
{
    public static void main(String args[]) {
        URL u;
        URLConnection uc;
        String header;
        String nextLine; 

        URLConnection urlConn = null; 
        InputStreamReader  inStream = null; 
        BufferedReader buff = null; 

        try {
            u = new URL("http://java.sun.com/jdc");
            URLConnection connection = u.openConnection();

            connection.connect();

            

            // Cast to a HttpURLConnection
            if ( connection instanceof HttpURLConnection)
            {
                HttpURLConnection httpConnection = (HttpURLConnection) connection;
//Por default este método tiene true, lo que hace que se redirige automáticamente a la pagina. La cual te regresa 200. Si lo apagamos entonces nos regresa el status de la pagina solicitada
httpConnection.setInstanceFollowRedirects(false);
                int code = httpConnection.getResponseCode();

                
                
                System.out.println(code);
                // do something with code .....
            }
            else
            {
                System.err.println ("error - not a http request!");
            }
            uc = u.openConnection();
            for (int j = 1;; j++) {
                header = uc.getHeaderField(j);
                if (header == null)
                    break;
                System.out.println(uc.getHeaderFieldKey(j) + " " + header);
            }

            // Create the URL obect that points 
            // at the default file index.html 

            urlConn = u.openConnection(); 
            inStream = new InputStreamReader( 
                urlConn.getInputStream()); 
            buff= new BufferedReader(inStream); 

            // Read and print the lines from index.html 
            while (true){ 
                nextLine =buff.readLine(); 
                if (nextLine !=null){ 
                    System.out.println(nextLine); 
                } 
                else{ 
                    break; 
                } 
            } 

        } catch (MalformedURLException e) {
            System.err.println("not a URL I understand.");
        } catch (IOException e) {
            System.err.println(e);
        }
    }

}




SALUDOS:

Re: problema con status code + java

Publicado: 04 Oct 2012, 23:44
por MichBukana
Es de buena persona ser agradecido asi que. Gracias Adwind te lo agradezco un abrazo.

Re: problema con status code + java

Publicado: 05 Oct 2012, 02:34
por adwind
De nada compañero. :D