您的位置:首页 > 编程语言 > Java开发

java 实现web 登陆

2011-02-14 17:10 459 查看
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();
  }
  结束语:
   上面的代码基本就可以实现网站的登陆、信息获取的功能。看到登陆奇兵等软件卖的那么火,我们也做一个去吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: