水仁博客

          上善若水,仁恕載物
          隨筆 - 11, 文章 - 0, 評論 - 4, 引用 - 0
          數據加載中……

          TestLoginWeb

          01 /**
          02 * 本程序可以模擬web登錄。向服務器端提交數據。
          03 * 1、向服務器post多個參數時,如何做?
          04 * 2、如何取得一個連接的Cookie和sessionId?
          05 * 3、如何使用sessionId訪問一個網站?
          06 */
          07
          08 import java.io.BufferedReader;
          09 import java.io.IOException;
          10 import java.io.InputStreamReader;
          11 import java.io.OutputStream;
          12 import java.net.HttpURLConnection;
          13 import java.net.URL;
          14
          15
          16 public class TestLoginWeb {
          17
          18 public static void main(String args[]) throws IOException {
          19
          20 URL url = new URL("http://localhost:8080/backgroundH/login.jsp");
          21 URL url1 = new URL("http://localhost:8080/backgroundH/execute.jsp");
          22 HttpURLConnection huc = (HttpURLConnection) url.openConnection();
          23
          24 // 設置允許output
          25 huc.setDoOutput(true);
          26 // 設置為post方式
          27 huc.setRequestMethod("POST");
          28 huc.setRequestProperty("user-agent", "mozilla/4.7 [en] (win98; i)");
          29
          30 OutputStream os = huc.getOutputStream();
          31 // 多個參數的輸出時,需要用&連接,并轉換成bytes
          32 os.write("name=gaolei".getBytes("gbk"));
          33 os.close();
          34
          35 BufferedReader br = new BufferedReader(
          36 new InputStreamReader(huc.getInputStream()));
          37
          38 huc.connect();
          39 String line = br.readLine();
          40
          41 while (line != null) {
          42 System.out.println(line);
          43 line = br.readLine();
          44 }
          45
          46 // 取得cookie
          47 String cookieval = huc.getHeaderField("set-cookie");
          48
          49 System.out.println(cookieval);
          50 String sessionid = null;
          51
          52 // 取得cookie,這段代碼對于不同網站不同,因為有的網站有多個session標識
          53 if (cookieval != null) {
          54 sessionid = cookieval.substring(0, cookieval.indexOf(";"));
          55 }
          56
          57 huc.disconnect();
          58 huc = null;
          59
          60 HttpURLConnection huc1 = (HttpURLConnection) url1.openConnection();
          61 // 使用sessionId訪問一個網站
          62 huc1.setRequestProperty("cookie", sessionid);
          63 // 設置允許output
          64 huc1.setDoOutput(true);
          65 // 設置為post方式
          66 huc1.setRequestMethod("POST");
          67 huc1.setRequestProperty("user-agent", "mozilla/4.7 [en] (win98; i)");
          68
          69 OutputStream os1 = huc1.getOutputStream();
          70
          71 os1.write("value=1234567890".getBytes("gbk"));
          72 os1.close();
          73
          74 BufferedReader br1 = new BufferedReader(
          75 new InputStreamReader(huc1.getInputStream()));
          76
          77 huc1.connect();
          78 line = br1.readLine();
          79 while (line != null) {
          80 System.out.println(line);
          81 line = br1.readLine();
          82 }
          83 huc1.disconnect();
          84
          85 }
          86 }
          87

          第31行,關于POST多個參數到服務器端,可以參照下面代碼:

          StringBuffer params = new StringBuffer("typeid=");
          params.append(args[0]).append("&");
          params.append("keyword=").append(args[1]);

          os.write(params.toString().getBytes("gb2312"));

          posted on 2007-12-28 11:25 水仁圭 閱讀(200) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 哈巴河县| 吉林市| 乐昌市| 合川市| 东明县| 镶黄旗| 丽水市| 禄劝| 南华县| 吐鲁番市| 宁阳县| 洪雅县| 轮台县| 开原市| 绩溪县| 肃宁县| 达拉特旗| 房产| 台南县| 池州市| 河北区| 措勤县| 陆丰市| 曲麻莱县| 定边县| 旺苍县| 屯留县| 武隆县| 漳平市| 文化| 靖安县| 云浮市| 中卫市| 静海县| 余姚市| 瑞金市| 济阳县| 西华县| 兴海县| 怀柔区| 迁西县|