บทความนี้แบ่งปันข้อมูลเกี่ยวกับการเข้าสู่ระบบการจำลอง Java ไปยังกิจการด้านวิชาการของ Zhengfang เพื่อบันทึกผลลัพธ์ตารางเรียนห้องเรียนที่ว่างเปล่า ฯลฯ สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
1.Jwgl.java
แพ็คเกจ com.ican.yueban.jwgl; นำเข้า java.io.ioException; นำเข้า java.io.inputstream; นำเข้า java.util.arraylist; นำเข้า java.util.list; นำเข้า java.util.scanner; นำเข้า org.apache.http.httpresponse; นำเข้า org.apache.http.namevaluepair; นำเข้า org.apache.http.client.clientprotocolexception; นำเข้า org.apache.http.client.entity.urlencodededforment org.apache.http.client.methods.closeablehttpresponse; นำเข้า org.apache.http.client.methods.httpget; นำเข้า org.apache.http.client.methods.httppOst org.apache.http.impl.client.httpclients; นำเข้า org.apache.http.impl.client.httpclients; นำเข้า org.apache.http.message.basicamevaluepair; นำเข้า org.jsoup.jsoup; นำเข้า com.ican.yueban.utils.dateutils; นำเข้า com.ican.yueban.utils.globalconstant; นำเข้า com.ican.yueban.uatils.ioutils; นำเข้า com.ican.yueban.utils.parseutils; คลาสสาธารณะ jwgl {สตริงคงที่ส่วนตัว smunumber = ""; สตริงคงที่ส่วนตัว stuname = ""; คุกกี้สตริงคงที่ส่วนตัว = ""; indexurl สตริงส่วนตัว = globalConstant.index_url; สตริงส่วนตัว secretCodeUrl = globalConstant.SecRetCode_URL; สตริงส่วนตัว loginUrl = globalConstant.login_url; สตริงส่วนตัว mainUrl = globalConstant.main_url; String Private String QueryClassRoomurl = GlobalConstant.Query_Classroom_url; สตริงส่วนตัว QueryClassroomgnmkdm = GlobalConstant.Query_classroom_gnmkdm; String Private String QueryStUgradeUrl = GlobalConstant.Query_STU_GRADE_URL; สตริงส่วนตัว querystugradegnmkd = globalconstant.query_stu_grade_gnmkdm; String Private String QueryStucourseUrl = GlobalConstant.QUERY_STU_CORSE_URL; สตริงส่วนตัว querystucoursegnmkd = globalconstant.query_stu_course_gnmkdm; สตริงส่วนตัว xixiaoqu = globalconstant.xixiaoqu; Private String IdentityStu = GlobalConstant.Identity_STU; / ** * ฟังก์ชั่นการเข้าสู่ระบบ * * @param stunumber * @param รหัสผ่าน * @return * @throws Exception * @throws unsupportedoperationException */ การเข้าสู่ระบบบูลีนสาธารณะ (สตริงการตะลึงรหัสผ่านสตริง) โยน unsupportedOperationException, ข้อยกเว้น // รับรหัสการตรวจสอบ httpget secretCodeGet = ใหม่ httpget (secretCodeUrl); closeablehttpClient client = httpClients.createdefault (); closeablehttpresponse responseesecret = client.execute (SecretCodeGet); // รับคุกกี้คุกกี้ที่ส่งคืน = Responseesecret.getFirstheader ("set-cookie"). getValue (); String viewState = ioutils.getViewState (indexurl, "", ""); // ดาวน์โหลดรหัสการยืนยันไปยัง C Disk ioutils.getSecret (Responsesecret.getEntity (). getContent (), "secretCode.png", "c: //"); สแกนเนอร์ SC = เครื่องสแกนใหม่ (System.in); System.out.println ("โปรดป้อนรหัสการตรวจสอบ:"); // กรอกค่าด้วยตนเองของรหัสการตรวจสอบที่คุณเพิ่งได้รับสตริงลับ = sc.next (). trim (); httppost loginPost = new httppost (loginurl); // สร้างคำขอเข้าสู่ระบบ LoginPost.setheader ("คุกกี้", คุกกี้); // นำรายการคุกกี้ที่ร้องขอครั้งแรก <namevaluePair> namevaluepairlogin = New Arraylist .ADD (ใหม่ BasicNameValuePair ("__ ViewState", ViewState)); // ซ่อนค่าฟอร์ม namevaluePairlogin .Add (ใหม่ bearmannamevaluePair ("txtusername", stunumber); // id namevaluepairlogin.add namevaluepairlogin.add (ใหม่ BasicNamevaluePair ("txtsecretcode", ความลับ)); // รหัสการตรวจสอบ NamevaluePairlogin.add (ใหม่ BasicAnnameValuePair ("RadiobuttonList1", IdentityStu); BasicAnmeValuePair ("button1", "")); namevaluepairlogin.add (ใหม่ BasicNameValuePair ("lblanguage", "")); namevaluepairlogin.add (ใหม่ BasicNameValuePair ("hidpdrs", "")); namevaluepairlogin.add (ใหม่ BasicNameValuePair ("HIDSC", "")); urlencodedFormentity entity = ใหม่ urlencodedFormentity (NamevaluePairlogin, "GB2312"); loginPost.setEntity (เอนทิตี); httpresponse responselogin = client.execute (loginPost); // client1.close (); // ขั้นตอนที่ 3: พิจารณาว่าข้อมูลที่ส่งนั้นสำเร็จหรือไม่และส่งคืน 302 สำเร็จหรือไม่ถ้า (Responselogin.getStatusline (). getStatusCode () == 302) {// หากการส่งสำเร็จขอหน้าหลักที่เปลี่ยนเส้นทางด้วยคุกกี้ mainget.setheader ("คุกกี้", คุกกี้); mainget.setheader ("ผู้อ้างอิง", loginurl); httPresponse responsemain = client.execute (mainget); InputStream คือ = Responseemain.getEntity (). getContent (); สตริง html = ""; ลอง {html = ioutils.gethtml (IS, "GB2312"); } catch (exception e) {system.out.println ("Parse html ล้มเหลว!"); E.PrintStackTrace (); } stuname = jsoup.parse (html) .getElementById ("xhxm"). text (); System.out.println ("เข้าสู่ระบบได้สำเร็จ! ยินดีต้อนรับ:" + stuname); client.close (); กลับมาจริง; } else {system.out.println ("เข้าสู่ระบบล้มเหลว!"); client.close (); กลับเท็จ; }} / ** * สอบถามห้องเรียนที่ว่างเปล่า * * @throws Exception * * @throws Exception * / Public Void QueryClassroom (String xiaoqu, String XQJ, String SJD) โยนข้อยกเว้น {closeablehttpClient client = httpClients.createdefault (); สตริง newQueryClassRommurl = queryClassRoomurl + smunumber + "& xm =" + stuname + queryclassroomgnmkdm; // url สำหรับการประกบสตริงการร้องขอ parsesjd = parseutils.parseweek (sjd); ioutils.getViewState (NewQueryClassRommurl, คุกกี้, MainUrl + Smunumber); // encapsulate query พารามิเตอร์การร้องขอห้องเรียนที่ว่างเปล่ารายการ <namevaluePair> queryClassROOMPAIR = new ArrayList <NameValuePair> (); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("__ EventTarget", "")); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("__ eventArgument", "")); QueryClassROOMPAIR .ADD (ใหม่ BASICNAMEVALUEPAIR ("__ ViewState", ViewState)); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("XIAOQ", XIAOOM)); // ประเภทวิทยาเขต, ค่าเริ่มต้นของ WEST CAMPUS QUERYCLASSROOMPAIR.ADD (ใหม่ BASSINMANEVALUEPAIR ("JSLB", "") "0")); // จำนวนที่นั่งขั้นต่ำ, ค่าเริ่มต้นเป็น 0 queryclassRoompair.add (ใหม่ BasicNameValuePair ("max_zws", "," ")); // จำนวนที่นั่งสูงสุด, ค่าเริ่มต้น QueryclassRoompair.add (ใหม่ BasicNameValuePair ("ddljsz", สัปดาห์นี้)); // สิ้นสุดสัปดาห์เริ่มต้นเป็นสัปดาห์ปัจจุบัน queryclassrassroompair.add (ใหม่ BasicNameValuePair ("XQJ", XQJ); BasicNameValuePair ("ddldsz", "")); // สำหรับคี่และสองสัปดาห์, ค่าเริ่มต้นเป็น queryclassrassroompair.add (ใหม่ bearmannamevaluepair ("sjd", parsesjd); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("XN", "2015-2016")); QueryClassROOMPAIR.ADD (ใหม่ BASICNANMEVALUEPAIR ("XQ", "2")); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("DDLSYXN", "2015-2016")); QueryClassROOMPAIR.ADD (ใหม่ BASICNAMEVALUEPAIR ("DDLSYXQ", "2")); urlencodedFormentity EntityClassroom = ใหม่ urlencodedFormentity (QueryClassRoompair); httppost queryclassRoompost = new httppost (newQueryClassRommurl); // newQueryClassRommurl ตัวอย่าง: http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=20121214104&xm=xxx&gnmkdm=n121611 queryclassroompost.setentity QueryClassRoompost.setheader ("ผู้อ้างอิง", MainUrl + smunumber); // ตั้งค่าข้อมูลส่วนหัว queryclassRoompost.setheader ("คุกกี้", คุกกี้); httpresponse responseclassroom = client.execute (queryClassRoompost); InputStream คือ = Responseclassroom.getEntity (). getContent (); สตริง html = ioutils.gethtml (IS, "GB2312"); เอกสารเอกสาร = jsoup.parse (html); องค์ประกอบ eleclassroom = doc.select ("td"); องค์ประกอบ eleinfo = doc.select ("#lblbt"); System.out.println (eleinfo.get (0) .text ()); สำหรับ (int i = 0; i <eleclassroom.size (); i ++) {// พิมพ์ชื่อห้องเรียนถ้า (i % 8 == 1) {system.out.println (eleclassroom.get (i) .Text ()); }} client.close (); }/ ** * Overload Query Method ห้องเรียนที่ว่างเปล่าเวลาเริ่มต้นและวิธีการสอบถามแบบไม่มีพารามิเตอร์สำหรับเซสชันหลักสูตร * * @throws ioexception * @throws clientProtocolexception */ โมฆะสาธารณะ QueryClassroom () พ่น clientProtocolexception, iOexception, exception Dateutils.getNowCourse () + ""; // รับเวลาปัจจุบันบทเรียนคือ JWGL ใหม่ (). QueryClassroom (xixiaoqu, วันธรรมดา, SDJ); } / ** * การสืบค้นวิธีคะแนนส่วนบุคคล * * @throws clientprotocolexception * @throws ioexception * / โมฆะสาธารณะ QueryStugrade (สตริง xn, สตริง xq) พ่น clientprotocolexception, ioexception String newQueryStUgradeUrl = queryStUgradeUrl + smunumber + "& xm =" + stuname + querystugradegnmkd; httppost queryGradePost = ใหม่ httppost (newQueryStugradeUrl); String ViewState = ioutils.getViewState (NewQueryStugradeUrl, คุกกี้, MainUrl + Smunumber); // encapsulate parameters list <namevaluePair> queryGradePair = new ArrayList <NameValuePair> (); querygradepair.add (ใหม่ BasicNameValuePair ("__ eventtarget", ""); querygradepair.add (ใหม่ BasicNameValuePair ("__ eventArgument", ""); querygradepair.add (ใหม่ BasicNameValuePair ("__ ViewState", ViewState)); querygradepair.add (ใหม่ BasicNameValuePair ("Hidlanguage", "")); querygradepair.add (ใหม่ BasicNamevaluePair ("ddlxn", xn)); // ปีการศึกษาปีการศึกษา querygradepair.add (ใหม่ basicamevaluepair ("ddlxq", xq)); // semester querygradepair.add querygradepair.add (ใหม่ BasicNameValuePair ("BTN_XQ", "เกรดสอง")); querygradepost.setheader ("คุกกี้", คุกกี้); querygradepost.setheader ("ผู้อ้างอิง", mainurl + smunumber); urlencodedFormentity EntityGrade = ใหม่ urlencodedFormentity (QueryGradePair); queryGradePost.setEntity (EntityGrade); httpresponse responseQueryGradePost = client.execute (queryGradePost); String gredhtml = ioutils.gethtml (responQueryGradePost.getEntity () .getContent (), "GB2312"); // system.out.println (เกรด HTML); Document Gradedoc = jsoup.parse (เกรด HTML); Elements elegrade = gradedoc.select ("TD"); // วิเคราะห์เนื้อหาแท็ก HTML <td> ตามที่ต้องการและเอาต์พุตสำหรับ (int i = 0; i <7; i ++) {system.out.println (elegrade.get (i) .Text ()); } สำหรับ (int i = 11; i <elegrade.size (); i = i + 10) {ถ้า (i + 15 <elegrade.size ()) {system.out.print (elegrade.get (i) .Text () + ""); i = i + 5; System.out.print (elegrade.get (i) .text ()); System.out.println (); } client.close (); }} / ** * การสืบค้นคลาสตารางเวลาเมธอด * * @param xnd * @param xqd * @throws clientprotocolexception * @throws ioexception * / โมฆะสาธารณะ querystucourse (สตริง xnd, สตริง xqd) String newQueryStucourseUrl = queryStucourseUrl + smunumber + "& xm =" + stuname + querystucoursegnmkd; String ViewState = ioutils.getViewState (NewQueryStucourseUrl, คุกกี้, MainUrl + Stunumber); httppost querystucoursepost = new httppost (newQueryStucourseurl); รายการ <NamevaluePair> StucoursePair = arrayList ใหม่ <NameValuePair> (); StucourSepair.add (ใหม่ BasicNameValuePair ("__ EventTarget", "XQD")); Stucoursepair.add (ใหม่ BasicNameValuePair ("__ eventArgument", ""); stucoursepair.add (ใหม่ BasicNameValuePair ("__ ViewState", ViewState)); Stucoursepair.add (ใหม่ BasicNameValuePair ("xnd", xnd)); Stucoursepair.add (ใหม่ BasicNameValuePair ("XQD", XQD)); urlencodedFormentity entitySource = ใหม่ urlencodedFormentity (StucoursePair); querystucoursepost.setEntity (entitySource); querystucoursepost.setheader ("คุกกี้", คุกกี้); querystucoursepost.setheader ("ผู้อ้างอิง", mainurl + stunumber); httpresponse responseestucourse = client.execute (querystucoursepost); สตริง html = ioutils.gethtml (Responsestucourse.getEntity () .getContent (), "GB2312"); เอกสาร doccourse = jsoup.parse (html); องค์ประกอบ elecourse = doccourse.select ("td"); สำหรับ (int i = 2; i <elecourse.size (); i ++) {system.out.print (elecourse.get (i) .Text ()+""); if (i % 9 == 0) {system.out.println (); }}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jwgl jw = new jwgl (); ลอง {jw.login ("นี่คือหมายเลขนักเรียน", "นี่คือรหัสผ่าน"); System.out.println ("การทดสอบคะแนนแบบสอบถาม -------"); JW.QueryStugrade ("2015-2016", "1"); // Query West Campus, วันจันทร์, มาตรา 12 การทดสอบห้องเรียนว่างเปล่า // JW.QueryClassroom ("1", "1", "2"); System.out.println ("สอบถามการทดสอบห้องเรียนว่างเปล่า ------"); JW.QueryClassroom (); System.out.println ("สอบถามตารางเวลาการสอบถามส่วนบุคคล --------"); JW.QueryStucourse ("2014-2015", "1"); } catch (clientprotocolexception e) {e.printstacktrace (); } catch (ioexception e) {e.printstacktrace (); } catch (exception e) {e.printstacktrace (); } // qq: 451209214}} 2.dateutils.java
แพ็คเกจ com.ican.yueban.utils; นำเข้า java.text.parseException; นำเข้า java.text.simpledateFormat; นำเข้า java.util.calendar; นำเข้า java.util.date; DateUtils ชั้นเรียนสาธารณะ {สตริงคงที่ส่วนตัว startDay = GlobalConstant.start_day; // วันที่เริ่มต้นสตริงคงที่ส่วนตัว endday = globalConstant.end_day; // วันที่วันหยุด/*** รับคลาสปัจจุบันที่คลาสเป็นเวลาปัจจุบันเพียงระหว่าง 8-16 นาฬิกาและค่าเริ่มต้นคือ 1 และ 2 คลาสในเวลาอื่น * * @return */ สาธารณะคงที่ int getNowCourse () {simpledateFormat df = new SimpledateFormat ("HH: MM: SS"); // ตั้งค่าสตริงวันที่วันที่ nowdate = df.format (วันที่ใหม่ ()); if (nowdate.startswith ("08") || nowdate.startswith ("09")) {return 1; // 12 บทเรียน } อื่นถ้า (nowdate.startswith ("10") || nowdate.startswith ("11")) {return 2; // 34 บทเรียนและอื่น ๆ } อื่นถ้า (nowdate.startswith ("12") || nowdate.startswith ("13") || nowdate.startswith ("14")) {return 3; } อื่นถ้า (nowdate.startswith ("15") || nowdate.startswith ("16")) {return 4; } else {return 1; }} / ** * รับสัปดาห์เวลาปัจจุบันคือ * * @return * / สาธารณะคงที่ int getweek () {int days = 0; int สัปดาห์นี้ = 0; ลอง {simpledateFormat df = new SimpledateFormat ("yyyy-mm-dd"); // ตั้งค่าสตริงรูปแบบวันที่ nowdate = df.format (วันที่ใหม่ ()); int NowdaysBetween = DaysBetween (start -day, NowDate) + 1; Days = Daysbetween (start -day, endday); int x = nowdaysbetween % 7; if (x == 0) {nowweek = NowDaysBetween / 7; } else {nowweek = NowDaysBetween / 7 + 1; }} catch (parseexception e) {system.out.println ("วันที่อินพุตผิดกฎหมายวันที่แยกวิเคราะห์ล้มเหลว"); E.PrintStackTrace (); } return สัปดาห์นี้; } / ** * รับเวลาปัจจุบันคือวันของสัปดาห์ * * @return * / สาธารณะคงที่ int getWeekday () {ปฏิทิน cal = calendar.getInstance (); Cal.Settime (วันที่ใหม่ ()); if (cal.get (calendar.day_of_week) - 1 == 0) {return 7; } return cal.get (calendar.day_of_week) - 1; } / ** * คำนวณจำนวนวันระหว่างสองประเภทสตริงวันที่ * * @param startday * @param endday * @return * @throws parseexception * / public Static int daysbetween (String startday, String endday) โยน parseexception ปฏิทิน cal = calendar.getInstance (); Cal.Settime (SDF.Parse (เริ่มต้นวัน)); Long Time1 = Cal.GetTimeInmillis (); Cal.Settime (sdf.parse (endday)); Long Time2 = cal.gettimeinmillis (); ยาวระหว่าง _days = (time2 - time1) / (1,000 * 3600 * 24); return integer.parseint (string.valueof (ระหว่าง _days)); }/ ** * ส่งคืนประเภทระบบสตริงเวลาใน yyyy-mm-dd hh: mm: รูปแบบ SS * * @return */ สตริงคงที่สาธารณะ getNowDate () {simpledateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); - 3.GlobalConstant.java
แพ็คเกจ com.ican.yueban.utils; /*** คำจำกัดความคงที่ทั้งหมดของระบบนี้** @author Song Kaizong**/อินเตอร์เฟสสาธารณะ GlobalConstant {สตริงสุดท้ายคงที่ String start_day = "2016-02-29"; สตริงสุดท้ายคงที่สาธารณะ end_day = "2016-07-10"; String สุดท้ายคงที่ public index_url = "http://jwgl2.ujn.edu.cn"; // หน้าแรกของระบบวิชาการ Jida ระบบวิชาการสาธารณะคงที่ String SecretCode_url = "http://jwgl2.ujn.edu.cn/checkcode "http://jwgl2.ujn.edu.cn/default2.aspx";/// jida ระบบวิชาการระบบล็อกอินหน้าสาธารณะคงที่สตริงสุดท้าย main_url =" http://jwgl2.ujn.edu.cn/xs_main.aspx query_classroom_url = "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=";// jida Query ห้องเรียนที่ว่างเปล่าสาธารณะคงที่ String สุดท้าย query_classroom_gnmkdm =" & gnmkdm = n1216611 "; query_stu_course_url = "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=";// jida การสืบค้นชั้นเรียนส่วนบุคคล สตริงสุดท้ายคงที่ query_stu_grade_url = "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=";// Jida สอบถามคะแนนส่วนบุคคล gnmkdm public public String สุดท้าย identity_stu = "student"; // identity: นักเรียนคงที่สตริงสุดท้าย xixiaoqu = "1"; // โลโก้วิทยาเขต Jidaxi โลโก้สาธารณะคงที่สตริงสุดท้าย dongxiaoqu = "2"; // jidadong campus โลโก้ "'1' | '1', '0', '0', '0', '0', '0', '0' '' // 1, 2 สตริงสุดท้ายคงที่สาธารณะคลาส 2 =" '2' | '0', '3', '0', '0', '0', '0', '0', '0' "'3' | '0', '0', '5', '0', '0', '0', '0', '0' '' // ส่วนที่ 5, 6 สตริงสุดท้ายคงที่สาธารณะ 4 =" 4 '|' 0 ',' 0 ',' 0 ',' 0 ',' 7 ',' 0 ',' 0 ' "'5' | '0', '0', '0', '0', '9', '0', '0', '0' '' // 8, 10 ส่วนสตริงสุดท้ายคงที่ระดับสุดท้าย "'7' | '1', '3', '0', '0', '0', '0', '0', '0' '' // 11, 12 ส่วนสตริงสุดท้ายคงที่สาธารณะระดับสุดท้าย 7 =" 7 '|' 1 ',' 3 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ' "'8' | '0', '0', '5', '7', '0', '0', '0', '0' ''; // ในช่วงบ่ายสายสุดท้ายของสตริงสุดท้าย 9 = '9' | '1', '3', '5', '7', '0', '0', '0' "'10' | '0', '0', '0', '0', '0', '9', '11', '0', '0', '0' '' // ในตอนเย็นสตริงสุดท้ายคงที่ = "btn_xq"; // คะแนนภาคการศึกษาสาธารณะคงที่สตริงสุดท้าย btn_xuenian = "btn_xn"; // ปีการศึกษาคะแนนสแตติกสุดท้ายของสาธารณะ btn_linian = "btn_zcj"; "1"; // สตริงสุดท้ายที่ไม่แน่นอนสาธารณะ user_state_y = "2"; // ได้รับการรับรองโดยสตริงสุดท้ายคงที่ความคิดเห็น _TYPE_NEWTHINGS = "1"; // ความคิดเห็นประเภท 1: สตริงสุดท้ายคงที่ความคิดเห็น _TYPE_INTEREST = "2"; 4.ioutils.java
แพ็คเกจ com.ican.yueban.utils; นำเข้า Java.awt.Rectangle; นำเข้า Java.awt.image.bufferedimage; นำเข้า java.io.bytearrayoutputstream; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.fileoutputstream; java.io.outputstream; นำเข้า java.net.url; นำเข้า java.net.urlconnection; นำเข้า java.util.iterator; นำเข้า Javax.imageio.imageio; นำเข้า Javax.imageio.imagereadparam; นำเข้า Javax.imageio.imagereader; นำเข้า Javax.imageio.stream.imageInputstream; นำเข้า org.apache.http.client.clientprotocolexception; นำเข้า org.apache.http.client.methods.httpget; นำเข้า org.apache.http.impl.client.closeablehttpclient; นำเข้า org.apche. คลาสสาธารณะ ioutils { / ** * ระบุรูปแบบการเข้ารหัสและแปลงสตรีมอินพุตเป็นสตริง * * @param คือ * @return * @throws ioexception * / สตริงคงที่สาธารณะ gethtml (inputstream คือการเข้ารหัสสตริง) ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [1024]; int len = 0; ในขณะที่ ((len = is.read (บัฟเฟอร์))! = -1) {bos.write (บัฟเฟอร์, 0, len); } is.close (); ส่งคืนสตริงใหม่ (bos.tobytearray (), การเข้ารหัส); } / ** * ดาวน์โหลดรูปภาพ * * @param urlstring * @param filename * @param savepath * @throws Exception * / public Static void ดาวน์โหลด (urlstring สตริง, ชื่อไฟล์สตริง, สตริงบันทึก) // เปิดการเชื่อมต่อ urlconnection con = url.openconnection (); // ตั้งค่าการหมดเวลาการร้องขอเป็น 5S con.SetConnectTimeOut (5 * 1000); // อินพุตสตรีมอินพุทสตรีมคือ = con.getInputStream (); // 1k ข้อมูลบัฟเฟอร์ [] bs = ไบต์ใหม่ [1024]; // อ่านความยาวข้อมูล int len; // ไฟล์สตรีมไฟล์เอาท์พุท SF = ไฟล์ใหม่ (savePath); if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = ใหม่ fileOutputStream (sf.getPath () + "//" + ชื่อไฟล์); // เริ่มอ่านในขณะที่ ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // เสร็จสมบูรณ์ปิดลิงก์ทั้งหมด os.close (); is.close (); } / ** * คลาสเครื่องมือการครอบตัดภาพ * * @param src * @param dest * @param x * @param y * @param w * @param h * @throws ioexception * / โมฆะสาธารณะคงที่ imageio.getimagereadersbyformatname ("jpg"); imageReader reader = (imageReader) iterator.next (); inputStream ใน = new FileInputStream (SRC); ImageInputStream IIS = Imageio.CreateImageInputStream (IN); Reader.setInput (IIS, TRUE); imageReadParam param = reader.getDefaultreadParam (); สี่เหลี่ยมผืนผ้าสี่เหลี่ยม = สี่เหลี่ยมใหม่ (x, y, w, h); param.setSourceRegion (rect); bufferedImage bi = reader.read (0, param); imageio.write (bi, "jpg", ไฟล์ใหม่ (dest)); in.close (); } / ** * ชุดการเข้ารหัสอักขระตัวตัดสิน * * @param str * @return * / สตริงคงที่สาธารณะ getencoding (สตริง str) {string encode = "gb2312"; ลอง {ถ้า (str.equals (สตริงใหม่ (str.getBytes (เข้ารหัส), เข้ารหัส))) {string s = encode; กลับ s; }} catch (ข้อยกเว้นข้อยกเว้น) {} encode = "ISO-8859-1"; ลอง {ถ้า (str.equals (สตริงใหม่ (str.getBytes (เข้ารหัส), เข้ารหัส)))) {สตริง s1 = เข้ารหัส; กลับ S1; }} catch (Exception Exception 1) {} encode = "UTF-8"; ลอง {ถ้า (str.equals (สตริงใหม่ (str.getBytes (เข้ารหัส), เข้ารหัส)))) {สตริง s2 = เข้ารหัส; กลับ S2; }} catch (Exception Exception2) {} encode = "gbk"; ลอง {ถ้า (str.equals (สตริงใหม่ (str.getBytes (เข้ารหัส), เข้ารหัส))) {สตริง s3 = เข้ารหัส; กลับ S3; }} catch (Exception Exception3) {} return "ไม่ทราบ"; } / ** * แปลงสตรีมอินพุตเป็นรูปภาพ ---》 รับรหัสการตรวจสอบ * * @param คือ * @param filename * @param savepath * @throws Exception * / โมฆะคงที่สาธารณะ getSecret (อินพุตสตรีมชื่อสตริง // ความยาวข้อมูลอ่านข้อมูล int len; // ไฟล์สตรีมไฟล์เอาต์พุต sf = ไฟล์ใหม่ (savepath); if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = ใหม่ fileOutputStream (sf.getPath () + "//" + ชื่อไฟล์); // เริ่มอ่านในขณะที่ ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // เสร็จสิ้นให้ปิดลิงก์ทั้งหมด os.close (); is.close (); } / ** * รับค่า __ViewState ของฟิลด์ที่ซ่อนอยู่ * * @param url * @param คุกกี้ * @param ผู้อ้างอิง * @return * @throws unsupportedoperationException * @throws clientprotocolexception * @throws ioexception * ioException {closeablehttpClient client = httpClients.createdefault (); httpget getViewState = new httpget (URL); getViewState.Setheader ("คุกกี้", คุกกี้); getViewState.SetheAder ("ผู้อ้างอิง", ผู้อ้างอิง); // ตั้งค่าข้อมูลส่วนหัวของสตริง s = ioutils.gethtml (client.execute (getViewState) .getEntity () .getContent (), "GB2312"); String viewState = jsoup.parse (s). select ("input [name = __ viewState]") .val (); client.close (); กลับ ViewState; - 5. parseutils.java
แพ็คเกจ com.ican.yueban.utils; parseutils คลาสสาธารณะ { / ** * รับสตริงที่สอดคล้องกับเซสชันหลักสูตร * @param Course * @return * / String String สาธารณะ parseweek (หลักสูตรสตริง) {String sjd = ""; int nowcourse = integer.parseint (หลักสูตร); สวิตช์ (ตอนนี้) {กรณีที่ 1: sjd = globalconstant.class1; หยุดพัก; กรณีที่ 2: SJD = GlobalConstant.class2; หยุดพัก; กรณีที่ 3: SJD = GlobalConstant.class3; หยุดพัก; กรณีที่ 4: SJD = GlobalConstant.class4; หยุดพัก; กรณีที่ 5: SJD = GlobalConstant.class5; หยุดพัก; กรณีที่ 6: SJD = GlobalConstant.class6; หยุดพัก; กรณีที่ 7: SJD = GlobalConstant.class7; หยุดพัก; กรณีที่ 8: SJD = GlobalConstant.class8; หยุดพัก; กรณีที่ 9: SJD = GlobalConstant.class9; หยุดพัก; กรณีที่ 10: SJD = GlobalConstant.class10; หยุดพัก; กรณีที่ 11: SJD = GlobalConstant.class11; หยุดพัก; ค่าเริ่มต้น: sjd = globalconstant.class1; หยุดพัก; } return sjd; -ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน