亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

java訪問需要登錄后才能訪問的頁面一待續

2019-11-14 15:33:06
字體:
來源:轉載
供稿:網友
我們平時所訪問的頁面有的僅僅是一些普通的頁面,有的需要用戶登錄后方可使用,或者需要認證以及是一些通過加密方式傳輸,例如HTTPS。很多頁面需要我們注冊登錄后才能訪問,這個時候就涉及到cookie的處理問題,為了使我們的程序能使用別人所提供的服務頁面,就要求程序首先登錄后再訪問服務頁面,這過程就需 要自行處理cookie。原文地址http://www.yihaomen.com/article/java/371.htm
大概分為3個步驟
第一步 發送一個Get請求 String page = http.GetPageContent(url);  其實就是為了獲取到一個訪問的Document將流轉化為字符串,方便訪問。
第二步 在發送post請求時需要發送對應的用戶名密碼,這個也是關鍵所在,因為一般不是你開發的網站你不清楚要傳遞的參數名是什么,通過Jsoup解析網頁,循環遍歷其中的input控件,將需要的用戶名密碼拼接起來,類似郵箱就是u=username&p=passWord
第三步  發送post請求,將拼接的字符串作為流讀進去
第四步  讀取cookie,帶著cookie一起訪問下一個需要登錄后訪問的頁面
最后  未成功訪問,估計錯誤在第二步,路過的請提寶貴意見,直接上代碼
 

1: package BlogTest;

   2:   
   3:  import java.io.BufferedReader;
   4:  import java.io.DataOutputStream;
   5:  import java.io.IOException;
   6:  import java.io.InputStreamReader;
   7:  import java.io.UnsupportedEncodingException;
   8:  import java.net.CookieHandler;
   9:  import java.net.CookieManager;
  10:  import java.net.URL;
  11:  import java.net.URLEncoder;
  12:  import java.util.ArrayList;
  13:  import java.util.List;
  14:   
  15:  import org.jsoup.Jsoup;
  16:  import org.jsoup.nodes.Document;
  17:  import org.jsoup.nodes.Element;
  18:  import org.jsoup.select.Elements;
  19:   
  20:  import sun.net.www.PRotocol.http.HttpURLConnection;
  21:   
  22:  public class Blogrunning {
  23:   
  24:      private List<String> cookies;
  25:      private HttpURLConnection conn;
  26:   
  27:      private final String USER_AGENT = "Mozilla/5.0";
  28:      
  29:      /**
  30:       * @param args
  31:       * @throws Exception 
  32:       */
  33:      public static void main(String[] args) throws Exception {
  34:          String url = "http://passport.VEVb.com/user/signin";
  35:          String redirturl = "http://home.VEVb.com/u/Sir-Lin/followers/1/";
  36:   
  37:          Blogrunning http = new Blogrunning();
  38:   
  39:          CookieHandler.setDefault(new CookieManager());
  40:   
  41:          // 1. 發送get請求
  42:          String page = http.GetPageContent(url);
 
  43:         String postParams = http.getFormParams(page, "username", "password");
  44:          // 2. 發送post請求
  45:          http.sendPost(url, postParams);
  46:          
  47:          // 3. success
  48:          String result = http.GetPageContent(redirturl);
  49:          System.out.println(result);
  50:      }
 
 
 
  51:      private void sendPost(String url, String postParams) throws IOException {
  52:          URL obj = new URL(url);
  53:          conn = (HttpURLConnection) obj.openConnection();
  54:   
  55:          conn.setUseCaches(false);
  56:          conn.setRequestMethod("POST");
  57:          conn.setRequestProperty("Host", "passport.VEVb.com");
  58:          conn.setRequestProperty("User-Agent", USER_AGENT);
  59:          conn.setRequestProperty("Accept",
  60:              "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  61:          conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
  62:          for (String cookie : this.cookies) {
  63:              conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
  64:          }
  65:          conn.setRequestProperty("Connection", "keep-alive");
  66:          conn.setRequestProperty("Referer", "http://passport.VEVb.com/user/signin");
  67:          conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  68:          conn.setRequestProperty("Content-Length", Integer.toString(postParams.length()));
  69:   
  70:          conn.setDoOutput(true);
  71:          conn.setDoInput(true);
  72:   
  73:          //發送post請求
  74:          DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
  75:          wr.writeBytes(postParams);
  76:          wr.flush();
  77:          wr.close();
  78:   
  79:          int responseCode = conn.getResponseCode();
  80:          System.out.println("/nSending 'POST' request to URL : " + url);
  81:          System.out.println("Post parameters : " + postParams);
  82:          System.out.println("Response Code : " + responseCode);
  83:   
  84:          BufferedReader in = 
  85:                   new BufferedReader(new InputStreamReader(conn.getInputStream()));
  86:          String inputLine;
  87:          StringBuffer response = new StringBuffer();
  88:   
  89:          while ((inputLine = in.readLine()) != null) {
  90:              response.append(inputLine);
  91:          }
  92:          in.close();
  93:      }
 
 
 
 
 
  94:      private String getFormParams(String html, String username, String password) throws UnsupportedEncodingException {
  95:          System.out.println("Extracting form's data...");
  96:   
  97:          Document doc = Jsoup.parse(html);
  98:   
  99:          Element loginform = doc.getElementById("Main");
 100:          Elements inputElements = loginform.getElementsByTag("input");
 101:          List<String> paramList = new ArrayList<String>();
 102:          for (Element inputElement : inputElements) {
 103:              String key = inputElement.attr("id");
 104:              String value = inputElement.attr("value");
 105:              if (key.equals("input1"))
 106:                  value = username;
 107:              else if (key.equals("input2"))
 108:                  value = password;
 109:              else if (key.equals("remember_me"));
 110:                  value = "true";
 111:              paramList.add(key + "=" + URLEncoder.encode(value, "UTF-8"));
 112:          }
 113:   
 114:          StringBuilder result = new StringBuilder();
 115:          for (String param : paramList) {
 116:              if (result.length() == 0) {
 117:                  result.append(param);
 118:              } else {
 119:                  result.append("&" + param);
 120:              }
 121:          }
 122:          return result.toString();
 123:        }
 124:  
 
 
 
 125:        public List<String> getCookies() {
 126:          return cookies;
 127:        }
 128:   
 129:        public void setCookies(List<String> cookies) {
 130:          this.cookies = cookies;
 131:        }
 
 
 
 
 
 132:      private String GetPageContent(String url) throws Exception {
 133:          URL obj = new URL(url);
 134:          conn = (HttpURLConnection) obj.openConnection();
 135:   
 136:          conn.setRequestMethod("GET");
 137:   
 138:          conn.setUseCaches(false);
 139:   
 140:          conn.setRequestProperty("User-Agent", USER_AGENT);
 141:          conn.setRequestProperty("Accept",
 142:              "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
 143:          conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.5");
 144:          if (cookies != null) {
 145:              for (String cookie : this.cookies) {
 146:                  conn.addRequestProperty("Cookie", cookie.split(";",1)[0]);
 147:                  System.out.println("cookie:   "+cookie.split(";",1)[0]);
 148:              }
 149:          }
 150:          
 151:          int responseCode = conn.getResponseCode();
 152:          System.out.println("/nSending 'GET' request to URL : " + url);
 153:          System.out.println("Response Code : " + responseCode);
 154:   
 155:          BufferedReader in = 
 156:                  new BufferedReader(new InputStreamReader(conn.getInputStream()));
 157:          String inputLine;
 158:          StringBuffer response = new StringBuffer();
 159:   
 160:          while ((inputLine = in.readLine()) != null) {
 161:              response.append(inputLine);
 162:          }
 163:          in.close();
 164:   
 165:          // Get the response cookies
 166:          setCookies(conn.getHeaderFields().get("Set-Cookie"));
 167:   
 168:          return response.toString();
 169:      }
 170:   
 171:  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲三级 欧美三级| 亚洲在线www| 欧美成人黄色小视频| 国产日韩欧美成人| 91精品久久久久久久久| 亚洲国产一区二区三区在线观看| 国产在线视频2019最新视频| 欧美成人精品在线| 九九久久久久久久久激情| 久久免费视频网站| 日韩黄色在线免费观看| 国产精品91在线观看| 欧美日韩福利视频| 欧美激情亚洲国产| 韩国美女主播一区| 国产精品视频白浆免费视频| 国产z一区二区三区| 97视频免费在线观看| 欧美成人自拍视频| 91av视频在线免费观看| 久久99热精品这里久久精品| 97久久精品视频| 热久久美女精品天天吊色| 亚洲精品美女在线| 性欧美xxxx视频在线观看| 精品动漫一区二区| 在线电影av不卡网址| 亚洲图片在区色| 欧美视频免费在线观看| 97免费在线视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产一区二中文字幕在线看| 精品久久香蕉国产线看观看gif| 亚洲欧洲美洲在线综合| 欧美专区中文字幕| 欧美福利视频在线观看| 亚洲区一区二区| 91精品国产综合久久久久久蜜臀| 久久精品久久久久久国产 免费| 午夜精品一区二区三区视频免费看| 最近2019中文字幕大全第二页| 亚洲新声在线观看| 国产精品一区久久久| 亚洲综合色激情五月| 日韩大胆人体377p| 欧美在线视频观看免费网站| 亚洲欧美日韩国产成人| 九九精品在线播放| 日本精品视频在线| 亚洲区bt下载| 青青草99啪国产免费| 欧美精品福利视频| 精品亚洲一区二区三区在线播放| 国产欧美久久一区二区| 日韩免费在线免费观看| 国产精品免费在线免费| 欧美美女操人视频| 精品国产欧美一区二区五十路| 国产欧美最新羞羞视频在线观看| 日本一区二区在线播放| 国产日本欧美在线观看| 精品国产91乱高清在线观看| 国产日韩中文在线| 成人国内精品久久久久一区| 日韩av色在线| 欧美亚洲日本网站| 日韩精品欧美激情| 中文亚洲视频在线| 国产v综合ⅴ日韩v欧美大片| 亚洲天堂影视av| 欧美激情综合色综合啪啪五月| 国产精品99一区| 欧美日韩一区二区三区在线免费观看| 丝袜美腿精品国产二区| 亚洲欧洲国产一区| 亚洲人线精品午夜| 欧美精品手机在线| 国语自产在线不卡| 国产精品丝袜一区二区三区| 亚洲91精品在线观看| 插插插亚洲综合网| 久久大大胆人体| 欧美黑人又粗大| 日韩a**中文字幕| 亚洲精品视频播放| 性金发美女69hd大尺寸| 国内偷自视频区视频综合| 亚洲深夜福利网站| 欧美精品激情在线| 久久影视免费观看| 国产精品福利片| 91国内免费在线视频| 日韩高清av在线| 成人激情视频免费在线| 亚洲人a成www在线影院| 欧美成人剧情片在线观看| 久久人人爽人人爽人人片亚洲| 在线观看日韩视频| 久久天天躁日日躁| 亚洲最大成人免费视频| 亚洲精品mp4| 欧洲成人在线视频| 欧美久久久精品| 欧美日产国产成人免费图片| 中日韩美女免费视频网址在线观看| 精品国产一区二区在线| 国产精品盗摄久久久| 91精品国产综合久久香蕉| 欧美在线一级视频| 成人国产精品一区| 国产黑人绿帽在线第一区| 69国产精品成人在线播放| 亚洲精品之草原avav久久| 欧美日韩国产综合新一区| 高清欧美性猛交xxxx黑人猛交| 国产999视频| 午夜精品一区二区三区视频免费看| 91在线无精精品一区二区| 国产精品一区二区三区成人| 日韩一区二区福利| 久久99热这里只有精品国产| 日韩精品高清在线观看| 日韩精品在线播放| 欧美激情精品久久久久久久变态| 欧美国产一区二区三区| 日韩欧美国产骚| 亚洲国产精品美女| 国外视频精品毛片| 国产999在线观看| 最近2019中文字幕在线高清| 日韩av网址在线观看| 国产不卡av在线免费观看| 福利二区91精品bt7086| 欧美在线观看视频| 国产精品h片在线播放| 92福利视频午夜1000合集在线观看| 久久久精品久久久久| 伊是香蕉大人久久| 国内精品国产三级国产在线专| 久久亚洲国产精品成人av秋霞| 欧美成人精品一区二区| 欧美日本中文字幕| 欧美电影电视剧在线观看| 国产一区深夜福利| 精品欧美一区二区三区| 日韩视频欧美视频| 色999日韩欧美国产| 92国产精品久久久久首页| 精品欧美国产一区二区三区| 国产精品偷伦一区二区| 亚洲aa在线观看| 欧美日韩亚洲成人| 美女国内精品自产拍在线播放| 欧美日韩久久久久| 性色av一区二区三区| 国产视频久久久久久久| 日韩免费看的电影电视剧大全| 免费成人高清视频| 日韩av在线网页| 亚洲xxx大片| 亚洲视频欧美视频| 国内精品一区二区三区| 午夜免费在线观看精品视频| 亚洲大胆美女视频|