¿Cómo simular el inicio de sesión en el foro de Discuz y descargar el código html devuelto en Java?
importar org.apache.commons.mons.";
static final int LOGON_PORT = 80;
cookie pública[] inicio de sesión( Nombre de cadena, Pas de cadena) {
prueba {
Cliente HttpClient = nuevo HttpClient();
client.getHostConfiguration().setHost(LOGON_ SITE, LOGON_PORT );
PostMethod post = new PostMethod("/logging.php?action=login");
client.executeMethod(post
Cadena de respuesta); = new String(post.getResponseBody(), "gbk");
post.releaseConnection();
String formhash = getFormHash(responseString);
System.out.println(formhash);
post = new PostMethod("/logging.php?action=loginamp;");
NameValuePair[] params = new NameValuePair[11 ];
params[0] = new NameValuePair("loginfield", "nombre de usuario");
params[1] = new NameValuePair("nombre de usuario", nombre ); p>
p>
params[2] = new NameValuePair("contraseña", pas
params[3] = new NameValuePair("referer", " index.php")
params[4] = new NameValuePair("questionid", "0");
params[5] = new NameValuePair("respuesta", ""); p>
params[6] = new NameValuePair("cookietime", "2592000");
params[7] = new NameValuePair("formhash", formhash);
params[8] = new NameValuePair("loginmode", "");
params[9] = new NameValuePair("loginsubmit", "true"); 10] = nuevo NameValuePair ("styleid", "");
post.setRequestBody(params);
client.executeMethod(post);
// respuestaString = new String(post.getResponseBody(), "gbk"); /p>
post.releaseConnection();
GetMethod get = new GetMethod("/index.php");
client.executeMethod(get);
cadena de respuesta = new String(get.getResponseBody(), "gbk");
get.releaseConnection();
System.out.println(cadena de respuesta);
} catch (Excepción e) {
e.printStackTrace();
}
return null; > }
public String getFormHash(String htmlContent) {
prueba {
int start = htmlContent.indexOf("name=\"formhash\");
inicio = htmlContent.indexOf("value=\"", inicio) 7;
int end = htmlContent.indexOf("nombre=\"formhash\"");
inicio = htmlContent.indexOf("valor=\"", inicio) 7;
fin = htmlContent.indexOf("nombre=\"formhash\"", inicio);