首页 新闻 会员 周边

java 模拟登录

0
悬赏园豆:80 [已关闭问题] 关闭于 2015-09-22 09:56

我自己写了一个登录页面,页面上from action一个固定链接,登录成功,进入他的主页面。我想在点击登录时不进他的页面所以我写一个servlet,调用这个方法,我在下面重定向回我的页面。

调用的方法如下:

public static void main(String[] args) throws Exception {
        //cookie存储类
        BasicCookieStore cookieStore = new BasicCookieStore();
        //创建一个httpclient,并设置默认cookie存储cookieStore
        CloseableHttpClient httpclient = HttpClients.custom()
                .setDefaultCookieStore(cookieStore)
                .build();
        try {
            //创建HttpGet对象,需要发送GET请求https://someportal/
            HttpGet httpget = new HttpGet("https://someportal/");
            //HttpClient对象的execute(HttpUriRequest request)发送请求
            CloseableHttpResponse response1 = httpclient.execute(httpget);
            //try开始,试图执行
            try {
                //获取服务器返回的HttpEntity对象
                HttpEntity entity = response1.getEntity();
                //打印返回信息,response.getStatusLine().getStatusCode()==200链接成功,==500失败。
                System.out.println("Login form get: " + response1.getStatusLine());
                //HttpEntity对象提供的静态帮助类,EntityUtils.consume关闭资源
                EntityUtils.consume(entity);
                //打印Initial set of cookies:
                System.out.println("Initial set of cookies:");
                //获取Cookies并循环,空的输出None,否则输出cookie
                List<Cookie> cookies = cookieStore.getCookies();
                if (cookies.isEmpty()) {
                    System.out.println("None");
                } else {
                    for (int i = 0; i < cookies.size(); i++) {
                        System.out.println("- " + cookies.get(i).toString());
                    }
                }
            } finally {
                //关闭
                response1.close();
            }
            //POST请求,并设置URI和参数
            HttpUriRequest login = RequestBuilder.post()
                    .setUri(new URI("https://someportal/"))
                    .addParameter("IDToken1", "username")
                    .addParameter("IDToken2", "password")
                    .build();
            //执行POST请求
            CloseableHttpResponse response2 = httpclient.execute(login);
            try {
                //获取实体对象
                HttpEntity entity = response2.getEntity();
                //打印服务器返回信息
                System.out.println("Login form get: " + response2.getStatusLine());
                //关闭流
                EntityUtils.consume(entity);
                //打印cookie
                System.out.println("Post logon cookies:");
                List<Cookie> cookies = cookieStore.getCookies();
                if (cookies.isEmpty()) {
                    System.out.println("None");
                } else {
                    for (int i = 0; i < cookies.size(); i++) {
                        System.out.println("- " + cookies.get(i).toString());
                    }
                }
            } finally {
                response2.close();
            }
        } finally {
            //关闭httpclient
            httpclient.close();
        }
    }

页面提交参数如下:

    String __VIEWSTATE=request.getParameter("__VIEWSTATE");
        String txtPopCorpCode=request.getParameter("txtPopCorpCode");
        String txtPopUserName=request.getParameter("txtPopUserName");
        String htxtPassword=request.getParameter("htxtPassword");
        String txtPopPassword=request.getParameter("txtPopPassword");
        String txtPopCheckCode=request.getParameter("txtPopCheckCode");
        String btnPopLogin=request.getParameter("btnPopLogin");

 

怎么让这个方法登录成功,怎么知道他成功登录了。并且我需要登录成功后操作这个网站的其他的页面。

狗霸人间的主页 狗霸人间 | 初学一级 | 园豆:4
提问于:2015-09-18 14:22
< >
分享
所有回答(3)
0

嵌套一个 iframe ,由主页面来控制 iframe.

吃饭了吗 | 园豆:204 (菜鸟二级) | 2015-09-18 14:41

能不能给我个小例子,这个标签实在没用过

支持(0) 反对(0) 狗霸人间 | 园豆:4 (初学一级) | 2015-09-18 14:47

src= 页面的名字

<iframe src="managerlist.php" id="iframe_content"
name="iframe_content" style="width: 95%; height: 95%; border: 1px"></iframe>

 

 document.getElementById("iframe_content").setAttribute("src", 'XXXX.php');

 

iframe 可以和主页面 互相交换 ,你网上查查

 

支持(0) 反对(0) 吃饭了吗 | 园豆:204 (菜鸟二级) | 2015-09-18 14:56

@吃饭了吗: 不是我想要的,但非常感谢

支持(0) 反对(0) 狗霸人间 | 园豆:4 (初学一级) | 2015-09-18 15:28
0

必须跳转过去吗,你可以先用AJAX去请求下,再重定向。也可以去试试去他们主页嵌入一段你的js代码,到时候跳转,把信息保存在cookie

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-19 11:51

谢谢,但是问题已修改。

支持(0) 反对(0) 狗霸人间 | 园豆:4 (初学一级) | 2015-09-21 13:38
0

没有人会吗??

狗霸人间 | 园豆:4 (初学一级) | 2015-09-22 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册