java 实现web 登陆

    技术2025-08-10  9

    web登陆无非就是网页获取,cookie 的管理,post和get方式的模拟。  1.网页内容获取   java.io.InputStream in;   java.net.URL url = new java.net.URL(www.xyz.com/content.html);   java.net.HttpURLConnection connection = (java.net.HttpURLConnection)   url.openConnection();   connection = (java.net.HttpURLConnection) url.openConnection();   //模拟成IE   connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");   connection.connect();   in = connection.getInputStream();   java.io.BufferedReader breader =   new BufferedReader(new InputStreamReader(in , "GBK"));   String str=breader.readLine());   while(st != null){   System.out.println(str);   str=breader.readLine());   }  2.cookie管理     1.直接的方式  取得cookie:  HttpURLConnection huc= (HttpURLConnection) url.openConnection();    InputStream is = huc.getInputStream();    // 取得sessionID.    String cookieVal = hc.getHeaderField("Set-Cookie");    String sessionId;    if(cookieVal != null)    {     sessionId = cookieVal.substring(0, cookieVal.indexOf(";"));    }    发送设置cookie:    HttpURLConnection huc= (HttpURLConnection) url.openConnection();    if(sessionId != null)    {    huc.setRequestProperty("Cookie", sessionId);    }    InputStream is = huc.getInputStream();  2.利用的jcookie包(http://jcookie.sourceforge.net/ )  获取cookie:    URL url = new URL("http://www.site.com/");    HttpURLConnection huc = (HttpURLConnection) url.openConnection();    huc.connect();    InputStream is = huc.getInputStream();    Client client = new Client();    CookieJar cj = client.getCookies(huc);  新的请求,利用上面获取的cookie:    url = new URL("http://www.site.com/");    huc = (HttpURLConnection) url.openConnection();    client.setCookies(huc, cj);  3.post方式的模拟  URL url = new URL("www.xyz.com");   HttpURLConnection huc = (HttpURLConnection) url.openConnection();  //设置允许output   huc.setDoOutput(true);  //设置为post方式   huc.setRequestMethod("POST");   huc.setRequestProperty("User-Agent","Mozilla/4.7 [en] (Win98; I)");   StringBuffer sb = new StringBuffer();   sb.append("userName="+userNme);   sb.append("&password="+password);  //post信息  OutputStream os = huc.getOutputStream();  os.write(sb.toString().getBytes("GBK"));  os.close();  BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream()))  huc.connect();  String line = br.readLine();  while(line != null){  l  System.out.printli(line);  line = br.readLine();  }  结束语:   上面的代码基本就可以实现网站的登陆、信息获取的功能。看到登陆奇兵等软件卖的那么火,我们也做一个去吧

    最新回复(0)