當前位置:編程學習大全網 - 源碼下載 - 如何用Java實現模擬登錄Discuz!論壇並下載返回的html代碼?

如何用Java實現模擬登錄Discuz!論壇並下載返回的html代碼?

package org.shaw;

import org.apache.commons.mons.mons.mons.mons.";

static final int LOGON_PORT = 80;

public Cookie[] login(String name, String pas) {

try {

HttpClient client = new HttpClient();

client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);

PostMethod post = new PostMethod("/logging.php?action=login");

client.executeMethod(post);

String responseString = new String(post.getResponseBody(), "gbk");

post.releaseConnection();

String formhash = getFormHash(responseString);

System.out.println(formhash);

post = new PostMethod("/logging.php?action=login&");

NameValuePair[] params = new NameValuePair[11];

params[0] = new NameValuePair("loginfield", "username");

params[1] = new NameValuePair("username", name);

params[2] = new NameValuePair("password", pas);

params[3] = new NameValuePair("referer", "index.php");

params[4] = new NameValuePair("questionid", "0");

params[5] = new NameValuePair("answer", "");

params[6] = new NameValuePair("cookietime", "2592000");

params[7] = new NameValuePair("formhash", formhash);

params[8] = new NameValuePair("loginmode", "");

params[9] = new NameValuePair("loginsubmit", "true");

params[10] = new NameValuePair("styleid", "");

post.setRequestBody(params);

client.executeMethod(post);

// responseString = new String(post.getResponseBody(), "gbk");

post.releaseConnection();

GetMethod get = new GetMethod("/index.php");

client.executeMethod(get);

responseString = new String(get.getResponseBody(), "gbk");

get.releaseConnection();

System.out.println(responseString);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public String getFormHash(String htmlContent) {

try {

int start = htmlContent.indexOf("name=\"formhash\"");

start = htmlContent.indexOf("value=\"", start) + 7;

int end = htmlContent.indexOf("\"", start);

String formhash = htmlContent.substring(start, end);

return formhash;

} catch (RuntimeException e) {

throw e;

}

}

public static void main(String[] args) {

new BaiyouBBS().login("zzzxxxzzz", "zzzxxxzzz");

}

}

  • 上一篇:阿裏山的傳說故事
  • 下一篇:北京海澱區有沒有比較好的IT人力外派公司?
  • copyright 2024編程學習大全網