qq_37471629 2017-04-18 06:28 采纳率: 0%
浏览 722

模拟登录教务在线,为什么进去的不是登录后的界面,而是登录前的界面,求大神帮忙,毕业论文需要

package loginApp;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class ImitateLogin {

public static void main(String[] args) {
    String userName = "1307012027";         // 本人学号
    String password = "360731*********";    // 本人密码
    String loginUrl = "http://jwc.jxnu.edu.cn/Default_Login.aspx?preurl=";
    String dataUrl = "http://jwc.jxnu.edu.cn";
    HttpClientLogin(userName, password, loginUrl, dataUrl);
}

private static void HttpClientLogin(String userName, String password,
        String loginUrl, String dataUrl) {
    HttpClient httpClient = new HttpClient();
    httpClient.getParams().setParameter(
            HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");
    PostMethod postMethod = new PostMethod(loginUrl);

    NameValuePair[] postData = { new NameValuePair("StuNum", userName),
            new NameValuePair("Password", password) };
    postMethod.setRequestBody(postData);

    try {

        httpClient.getParams().setCookiePolicy(
                CookiePolicy.BROWSER_COMPATIBILITY);
        httpClient.executeMethod(postMethod);
        Cookie[] cookies = httpClient.getState().getCookies();
        StringBuffer stringBuffer = new StringBuffer();
        for (Cookie c : cookies) {
            stringBuffer.append(c.toString() + ";");
        }

        GetMethod getMethod = new GetMethod(dataUrl);
        getMethod.setRequestHeader("Cookie", stringBuffer.toString());
        postMethod.setRequestHeader("Host", "http://jwc.jxnu.edu.cn");
        postMethod.setRequestHeader("Referer", "http://jwc.jxnu.edu.cn/Default_Login.aspx?preurl=");
        postMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
        httpClient.executeMethod(getMethod);

        String result = getMethod.getResponseBodyAsString();
        System.out.println(result);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

  • 写回答

1条回答 默认 最新

  • u010500435 2017-04-18 09:29
    关注

    HttpClient 会自动管理它的cookie。 如果登录成功的话,直接该对象访问数据 可以直接访问的。。 检查下 是否登录请求成功。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料