<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    amp@java

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      99 隨筆 :: 0 文章 :: 228 評論 :: 0 Trackbacks
    最近新部署了一個信息系統,廠家居然沒有升級方案,所有數據都要重新輸入,包括用戶、角色等都要重新配置,真是操蛋。要是一個個錄入簡直是日狗了,這些用戶在其他信息系統早已存在,但是每個都復制粘貼提交一遍也不是辦法,于是就想用程序自動完成這些操作。步驟如下:
    1、從其他信息系統的數據庫導出用戶信息,也可以直接從其他信息系統的界面把所有用戶信息復制下來放在一個文本文件里,反正就是準備好數據源;
    2、在需要錄入用戶信息的系統中,用人工操作的方式登錄系統,并錄入一個用戶,同時用Wireshark抓包,查看整個過程要提交一些什么樣的表單數據;
    3、在程序中用httpclient提交同樣的數據,完成登錄,并從第1步的數據源中讀取用戶信息,然后循環提交錄入用戶所需的數據,完成用戶的錄入;
    4、新系統沒有默認的用戶角色,是需要一個個修改的,是根據用戶的ID來確定當前修改的用戶,并且提交一個角色ID來進行設定,因此需要首先獲取用戶的ID,然后根據該ID來提交角色ID,而用戶ID是通過用戶列表頁面獲取到的,因此還需要通過正則表達式來獲取所有用戶的ID,然后循環提交角色ID,完成角色設定。

    花了不少時間才搞定,有幾個地方需要注意:
    1、如果表單數據不包含中文,直接把表單的Name和Value加在HttpPost的URL的?后面即可,不需要專門建立NameValuePair,如下所示:
    HttpPost httppost = new HttpPost("http://1.1.1.1/test/adduser?userid=abc&username=efg");
    httpclient.execute(httppost);

    但是,如果表單數據包含中文,例如姓名,用這種方式提交的表單數據會出現亂碼,即使通過URLEncoder進行編碼后再發也不行,必須建立NameValuePair,再加到HttpPost的Entity里面,如下所示:
    HttpPost httppost = new HttpPost("http://1.1.1.1/test/adduser?userid=abc");
    List
    <NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(
    new BasicNameValuePair("username","張三"));
    httppost.setEntity(
    new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
    httpclient.execute(httppost);

    2、用于網頁內容查找的正則表達式的使用方式一般為:
    Pattern p = Pattern.compile(".*?abc(whattoget)123.*?");
    Matcher m = p.matcher(line);
    if(m.matches()){
         String whattoget 
    = m.group(1);
    }
    ".*?abc(whattoget)123.*?"就是一個正則表達式,如果用于匹配一行的時候,由于要查找的內容是在行中間,所以前后需要加上.*?,表示前后可以是任意字符,也可以什么都沒有,而表達式中間的(whattoget)就表示一個group,編號為1,編號為0的group是整個匹配的字符串,找到之后提取group(1)即可得到想要的內容。
    測試正則表達式是一項很麻煩的工作,不過有個很好的軟件可以完成此工作:RegexBuddy,支持各種語言的正則表達式的調試。
    學習正則表達式的寶典是《Mastering Regular Expression》。
    posted on 2016-01-12 15:54 amp@java 閱讀(3575) 評論(1)  編輯  收藏 所屬分類: Java commonWEB

    評論

    # re: 用httpclient和正則表達式完成一些無聊的重復性任務[未登錄] 2016-01-16 00:03 jacky
    RegexBuddy測試正則表達式很不錯  回復  更多評論
      

    主站蜘蛛池模板: 亚洲日本一线产区和二线| 亚洲av无码一区二区乱子伦as| 久久99国产综合精品免费| 日本黄页网址在线看免费不卡| 亚洲色欲色欲www| 久久亚洲一区二区| 爱情岛论坛网亚洲品质自拍| 免费被黄网站在观看| 中国在线观看免费高清完整版| 久久99热精品免费观看牛牛| 国产免费一级高清淫曰本片| 美女黄网站人色视频免费| 亚洲精品无码av天堂| 日韩在线免费播放| 国产曰批免费视频播放免费s| 91在线手机精品免费观看| 丝袜足液精子免费视频| 一级中文字幕免费乱码专区| 色偷偷亚洲男人天堂| 亚洲性无码一区二区三区| 亚洲AV无码国产精品色| 亚洲成综合人影院在院播放| 亚洲高清在线mv| 亚洲国产中文v高清在线观看| 国产精品国产免费无码专区不卡 | 一出一进一爽一粗一大视频免费的| 亚洲一区二区三区国产精华液| 亚洲免费网站在线观看| 亚洲最大的视频网站| 亚洲熟妇色自偷自拍另类| 亚洲欧洲自拍拍偷综合| 亚洲成人高清在线观看| 亚洲国产成人久久综合一区| 亚洲卡一卡2卡三卡4麻豆| 亚洲性无码av在线| 国产成人精品日本亚洲专| 亚洲一区二区三区丝袜| 国产成人精品亚洲| 一级毛片a女人刺激视频免费| 一区二区三区在线免费观看视频| 一级一黄在线观看视频免费|