java模拟post请求登录

摘要:
importjava.io.FileOutputStream;importorg.jsoup.select.Elements;charset=UTF-8“);Stringstr=connection.getHeaderField(“位置”);//Stringcookies=getCookies(连接);str);conn.setDoOutput(true);
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登录,如何有错请大家帮忙指出

免责声明:文章转载自《java模拟post请求登录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Vue js 的生命周期详解使用Python爬虫爬取网络美女图片下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS控制div跳转到指定的位置的解决方案总结

总结一下自己在写这个需求遇到的问题,相信大家应该是经常遇到的。即要求滚轮滚动到指定的位置。先看下基本的解决方案。 1.给链接a加个#的方式来实现跳转。(锚点方法)这里直接贴下代码:    html页面: <div id="container"> <a href="http://t.zoukankan.com/jtjds-...

python+opencv中最近出现的一些变化( OpenCV 官方的 Python tutorial目前好像还没有改过来?) 记一次全景图像的拼接

最近在学习过程中发现opencv有了很多变动, OpenCV 官方的 Python tutorial目前好像还没有改过来,导致大家在学习上面都出现了一些问题,现在做一个小小的罗列,希望对大家有用 做的是关于全景图像的拼接,关于sift和surf的语法之后有需要会另开文章具体阐述,此篇主要是解决大家困惑许久的问题。 笔者python3.x 首先是安装上,必须...

博客园第一搏——Html5 JumpStart学习笔记1:Semantic Structure

一、一点感悟   注册博客园大概有半年了吧,还没有写过博客。之前先接触了CSDN,培训的时候经常在CSDN上写学习笔记。工作了小半年,比较忙,就把写博客的习惯可耻的匿了。今日重操旧业,并把家搬到了更专业的博客园,希望能坚持下去,和园友共同分享、学习、提高。   就在刚才,看了首页一篇文章——六年不惑:开发人员的“僵难Style”,很感谢园友对做人经验的分享...

[java]创建一个默认TreeMap() key为什么不能为null

 本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作。 先看一下 TreeMap 的 put(K key, V value) public TreeMap() { comparator = null;} public V put(K key, V value) { Entry<K,V...

jackson实体转json时 为NULL不参加序列化的汇总

首先加入依赖<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency> 方法一、实体上使用 @JsonInclude(JsonInclude.Include....

[WorldWind学习]8.Cache对象

MainApplication的构造函数599行实例化了worldWindow的Cache属性。 // set Upper and Lower limits for Cache size control, in bytes long CacheUpperLimit = (long)Settings.CacheSizeMega...