zoukankan      html  css  js  c++  java
  • java HttpURLConnection 登录网站 完整代码

    import java.io.*;
    import java.util.*;
    import java.net.*;
    
    public class WebTest {
    
        public static void main(String[] args) {
    
            System.out.println("beging...");
            DownLoadPages("http://login.xiaonei.com/Login.do", "d:/fileDown.txt");
            // visit("http://www.xiaonei.com");
            System.out.println("end.");
        }
    
        public static void DownLoadPages(String urlStr, String outPath) {
            int chByte = 0;
    
            URL url = null;
    
            HttpURLConnection httpConn = null;
    
            InputStream in = null;
    
            FileOutputStream out = null;
    
            try {
                String post = "email=" + URLEncoder.encode("e-mail", "UTF-8")
                        + "&password=" + "password";
                url = new URL(urlStr);
    
                httpConn = (HttpURLConnection) url.openConnection();
    
                //setInstanceFollowRedirects can then be used to set if 
                //redirects should be followed or not and this should be used before the
                //connection is established (via getInputStream, getResponseCode, and other
                //methods that result in the connection being established).
    
                httpConn.setFollowRedirects(false);
    
                //inorder to disable the redirects
                httpConn.setInstanceFollowRedirects(false);
    
                httpConn.setDoOutput(true);
                httpConn.setDoInput(true);
                httpConn.setRequestProperty("User-Agent",
                        "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");
                httpConn.setRequestProperty("Content-Type",
                        "application/x-www-form-urlencoded");
    
                //ok now, we can post it
                PrintStream send = new PrintStream(httpConn.getOutputStream());
                send.print(post);
                send.close();
                URL newURL = new URL(httpConn.getHeaderField("Location"));
                System.out.println("the URL has move to "
                        + httpConn.getHeaderField("Location"));
                httpConn.disconnect();
    
                //             OK, now we are ready to get the cookies out of the URLConnection    
                String cookies = getCookies(httpConn);
                System.out.println(cookies);
                httpConn = (HttpURLConnection) newURL.openConnection();
                httpConn.setRequestProperty("User-Agent",
                        "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");
                httpConn.setRequestProperty("Content-Type",
                        "application/x-www-form-urlencoded");
                httpConn.setRequestProperty("Cookie", cookies);
    
                httpConn.setDoInput(true);
                in = httpConn.getInputStream();
                out = new FileOutputStream(new File(outPath));
    
                chByte = in.read();
                while (chByte != -1) {
                    out.write(chByte);
                    //System.out.println(chByte);
                    chByte = in.read();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static String getCookies(HttpURLConnection conn) {
            StringBuffer cookies = new StringBuffer();
            String headName;
            for (int i = 7; (headName = conn.getHeaderField(i)) != null; i++) {
                StringTokenizer st = new StringTokenizer(headName, "; ");
                while (st.hasMoreTokens()) {
                    cookies.append(st.nextToken() + "; ");
                }
            }
            return cookies.toString();
        }
    }
  • 相关阅读:
    Spring实现AOP的4种方式(转)
    【转】一个不错的eclipse反编译插件
    spring配置事务
    使用XFire+Spring构建Web Service(一)——helloWorld篇
    WebService到底是什么?(转)
    ContextLoaderListener作用详解(转)
    SVN检出资源文件
    ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2
    WP8_当滚动到滚动条的70%时,自动加载数据效果实现
    WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)
  • 原文地址:https://www.cnblogs.com/chasewade/p/3408089.html
Copyright © 2011-2022 走看看