• java模拟post请求登录


    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Scanner;
    import java.util.StringTokenizer;
     
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
     
     
     
    public class TestPost {
        public static void main(String args[]) throws IOException{ 
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入用户名:");
            String user_name = scanner.next();
            System.out.println("请输入密码:");
            String password = scanner.next();
            testPost(user_name , password,"d:/fileDown2.txt");
            testJsoup();
        }
     
        public static void testPost(String user_name , String password,String outPath) throws IOException{
            String login =""; 
            URL url = new URL("http://passport.mop.com");
            HttpURLConnection connection = null;
            connection = (HttpURLConnection) url.openConnection();//建立链接
         
            connection.setInstanceFollowRedirects(false);
            connection.setRequestProperty("Connection","keep-alive");
            connection.setRequestProperty("User-Agent",
                    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36");
            connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            connection.setDoInput(true);
            connection.setDoOutput(true);
    //      connection.disconnect();
            String str = connection.getHeaderField("Location");//获得重定向的url地址
            URL newURL = new URL(str); 
    //      String cookies = getCookies(connection);
            HttpURLConnection conn = (HttpURLConnection) newURL.openConnection();
            conn.setRequestProperty("Referer", str);//浏览器向 WEB 服务器表明自己是从哪个 网页/URL 获得/点击 当前请求中的网址/URL
    //      conn.setRequestProperty("Cookie", cookies); //发送设置cookie:
            conn.setRequestProperty("Connection","keep-alive");
            conn.setRequestProperty("User-Agent",
                    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36");
            conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
            conn.setDoInput(true);
            conn.setDoOutput(true);
            OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(),"utf-8");
            login =login+"user_name="+user_name+"&"+"password="+password;
            out.write(login);
            out.flush();
            out.close();
            InputStream inputStream = conn.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
            reader.close();
            //链接到personal页面
            String headerName = null;
            StringBuilder myCookies = new StringBuilder();
    //      myCookies.append(cookies + ";");
            for(int i =1;(headerName= conn.getHeaderFieldKey(i))!=null;i++){
                    if(headerName.equals("Set-Cookie")){
                        String cookie = conn.getHeaderField(i);
                        cookie = cookie.substring(0, cookie.indexOf(";"));
                        String cookieName = cookie.substring(0, cookie.indexOf("="));
                        String cookieValue = cookie.substring(cookie.indexOf("=") + 1, cookie.length());
                        myCookies.append(cookieName + "=");
                        myCookies.append(cookieValue + ";");
                    }
            }
            URL purl = new URL("http://passport.mop.com/personal");
            HttpURLConnection pconn = (HttpURLConnection) purl.openConnection();
            pconn.setRequestProperty("Referer", str);
            pconn.setRequestProperty("Cookie", myCookies.toString());
     
            pconn.connect();
            InputStream inputStream1 = pconn.getInputStream();
    //      BufferedReader reader1 = new BufferedReader(new InputStreamReader(inputStream1,"utf-8"));
    //      String line1 = reader1.readLine();
    //      while(line1 != null){
    //          System.out.println(line1);
    //          line1 = reader1.readLine();
    //      }
    //      reader1.close();
            int chByte = 0;
            FileOutputStream fileOut = new FileOutputStream(new File(outPath));
            chByte = inputStream1.read();
            while(chByte != -1){
                fileOut.write(chByte);
                chByte = inputStream1.read();
            }
        }
        private static String getCookies(HttpURLConnection conn) {
            // TODO Auto-generated method stub
    //               StringBuffer cookies = new StringBuffer();  
                     StringBuilder cookies = new StringBuilder();
                        String headName;  
     
                        for (int i = 1; (headName = conn.getHeaderField(i)) != null; i++) {  
     
                            StringTokenizer st = new StringTokenizer(headName, "; ");  
     
                            while (st.hasMoreTokens()) {  
     
                                cookies.append(st.nextToken() + "; ");  
                            }  
                        }                      
                        return cookies.toString();      
        }
         
        private static void testJsoup() throws IOException{
            //解析html文档 
            File input = new File("D:/fileDown2.txt"); 
            Document doc = Jsoup.parse(input, "UTF-8");
    //      for(Element ele : doc.getElementsByClass("zhnc").select("ul")){
    //          if(!ele.select("li").toString().equals("")){
    //              String text = ele.select("li").text();
    //              System.out.println("user_name is:"+text);
    //          }
    //      } 
            Elements ele = doc.getElementsByClass("zhnc").select("ul");
            if(!ele.select("li").toString().equals("")){
                String text = ele.select("li").text();
                System.out.println("user_name is:"+text);
            }else{
                System.out.println("登录失败");
            }
        }
    }

    最近在学如何用post登录,如何有错请大家帮忙指出

  • 相关阅读:
    淘淘商城之商城简介
    TCP输出和UDP输出
    缓冲区大小及限制
    mysql创建数据库指定编码格式
    20191128 Spring Boot官方文档学习(10)
    20191128 Spring Boot官方文档学习(9.11-9.17)
    20191128 Spring Boot官方文档学习(9.10)
    20191128 Spring Boot官方文档学习(9.9)
    20191128 Spring Boot官方文档学习(9.4-9.8)
    20191127 Spring Boot官方文档学习(9.1-9.3)
  • 原文地址:https://www.cnblogs.com/kanyinqing/p/5006611.html
Copyright © 2020-2023  润新知