La página web de inicio de sesión tiene un token oculto que se envía en una POST al enviar el formulario. ¿Cómo usar el token en un HttpPost de Java?

Entonces, hay un sitio web que tiene un formulario de inicio de sesión. Quiero iniciar sesión y luego descargar un archivo. Al enviar el formulario, no solo se transmiten el nombre de usuario y la contraseña en la POST http, sino también un token que está en una <input>etiqueta oculta . Ahora, mi problema es que cada vez que abro la URL en Java y obtengo el token para hacer una POST, el token no es válido cuando uso un HttpClient. De alguna manera necesito usar el mismo cliente para llamar al sitio web para obtener el token y hacer la publicación. Desafortunadamente, recibo un código de retorno PROHIBIDO 403 cuando intento acceder al archivo. Esto es lo que tengo hasta ahora:

public static void main(String[] args){



    try {
        String token = getTokenFromPage("http://my.url");   

        HttpContext context = new BasicHttpContext();   
        DefaultHttpClient client = new DefaultHttpClient();         

        List <NameValuePair> parameters = new ArrayList <NameValuePair>();
        HttpPost post = new HttpPost("http://my.url");
        parameters.add(new BasicNameValuePair("username", "MYNAME"));
        parameters.add(new BasicNameValuePair("password", "MYPW"));
        parameters.add(new BasicNameValuePair("token", token));

        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters, HTTP.UTF_8);
        post.setEntity(entity); 

        System.out.println("URL: " + post.getURI());
        HttpResponse postResponse = client.execute(post, context);
        System.out.println(postResponse.getStatusLine());
        EntityUtils.consume(postResponse.getEntity());
//Now download the file

        HttpGet httpget = new HttpGet("http://url.to.file");

        HttpResponse getResponse = client.execute(httpget, context);

        System.out.println(getResponse.toString());

        System.out.print((postResponse.getEntity().getContent()));
        client.getConnectionManager().shutdown();


    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Respuesta 1

Estoy agregando una imagen en el encabezado de un documento de Word. Muestra un marco para la imagen y dice "la imagen no se puede mostrar actualmente". Si agrego texto al encabezado, muestra el texto, y si agrego el ...

Me gustaría hacer esto (reproducción mínima): String key = "foo"; Valor del objeto = nueva barra (); if (target instanceof Map <?,?>) {Map <?,?> map = (Map <?,?>) target; map.put (clave, valor) ...

De acuerdo, no puedo decirlo, pero necesito lo siguiente: C: \ Temp \ Something \ GroupName \ ... \ file.ts -> GroupName \ ... \ file.ts Quiero extraer la ruta de un carpeta hasta el final. Se me ocurrió esto ...

Tengo un método que obtiene registros de la tabla db de MySQL utilizando la API JDBC. El comando que he estado usando es: "SELECCIONAR columna_1, columna_2, ... DE la tabla;" Los nombres de columna se proporcionan a ...