تشارك هذه المقالة معلومات حول تسجيل الدخول إلى محاكاة 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 ؛ import org.apache.http.namevaluepair ؛ import org.apache.http.client.clientprotocolexception ؛ import org.apache.http.client.entity.urlencodformentity ؛ org.apache.http.client.methods.closablehttpresponse ؛ import org.apache.http.client.methods.httpget ؛ import org.apache.http.client.methods.htpost org.apache.http.impl.client.httpclients ؛ استيراد org.apache.http.impl.client.httpclients ؛ استيراد org.apache.http.message.basicnamevaluepair ؛ استيراد org.jsoup.jsoup ؛ استيراد org.jsoup.nodees.document.jsupument ؛ استيراد com.ican.yueban.utils.dateutils ؛ استيراد com.ican.yueban.utils.globalconstant ؛ استيراد com.ican.yueban.utils.ioutils ؛ استيراد com.ican.yueban.utils.parseutils ؛ الفئة العامة jwgl {private static string und = "" ؛ سلسلة ثابتة خاصة und statame = "" ؛ ملف تعريف الارتباط الثابت الخاص = "" ؛ سلسلة private indexurl = globalConstant.index_url ؛ سلسلة خاصة SecretCodeUrl = GlobalConstant.SecretCode_url ؛ سلسلة private loginurl = globalConstant.login_url ؛ سلسلة خاصة mainurl = globalConstant.main_url ؛ سلسلة خاصة QueryClassRoomUrl = GlobalConstant.query_classroom_url ؛ سلسلة خاصة queryclassroomgnmkdm = GlobalConstant.query_classroom_gnmkdm ؛ سلسلة خاصة querystugradeurl = globalConstant.query_stu_grade_url ؛ سلسلة خاصة QueryStugRadegnMkd = GlobalConstant.query_stu_grade_gnmkdm ؛ سلسلة خاصة QueryStucourceUrl = globalConstant.query_stu_course_url ؛ سلسلة خاصة querystucourcegnmkd = globalConstant.query_stu_course_gnmkdm ؛ سلسلة خاصة xixiaoqu = GlobalConstant.xixiaoqu ؛ سلسلة private IdentityStu = GlobalConstant.identity_stu ؛ / ** * دالة تسجيل الدخول * * param undumber * param password * return * @throws استثناء * throws UnsupportedOperationException */ تسجيل الدخول إلى Boolean Public (سلسلة صاعقة ، كلمة مرور السلسلة) رميات UnsupportedOperationException ، استثناء {this.stunumber = und ؛ // احصل على رمز التحقق httpget secretCodeget = new httpget (secretCodeUrl) ؛ clostablehttpclient client = httpclients.createdefault () ؛ closablehttpresponse reseSeSecret = client.execute (secretCodeget) ؛ // احصل على ملف تعريف الارتباط الذي تم إرجاعه = responseSecret.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 ("الرجاء إدخال رمز التحقق:") ؛ // ملء يدويًا قيمة رمز التحقق الذي حصلت عليه للتو Secret String = SC.Next (). trim () ؛ httppost logInPost = new httppost (loginurl) ؛ // إنشاء طلب logInPost loginpost.setheader ("ملف تعريف الارتباط" ، ملف تعريف الارتباط) ؛ basicnamevaluepair ("__ ViewState" ، viewState)) ؛ // إخفاء قيمة النموذج namevaluepairlogin .add (new BasicNameValuePair ("txtusername" ، stunumber) BasicNameValuePair ("TxtsecretCode" ، Secret)) ؛ // رمز التحقق NameValuePairlogin.add (New BasicNameValuePair ("RadiObuttonList1" ، IdentityStu) ؛ // الهوية ، NameValuePairlogin.add (New BasicNamePair ("button1" ، ")") ؛ NameValuePairlogin.add (New BasicNameValuePair ("lblanguage" ، "")) ؛ NameValuePairlogin.add (New BasicNameValuePair ("HIDPDRS" ، "")) ؛ NameValuePairlogin.add (New BasicNameValuePair ("HIDSC" ، "")) ؛ urlencodedformentity الكيان = urlencodedformentity (namevaluepairlogin ، "GB2312") ؛ logInpost.setentity (الكيان) ؛ httpresponse responselogin = client.execute (logInPost) ؛ // client1.close () ؛ // الخطوة 3: تحديد ما إذا كانت البيانات المقدمة ناجحة وأرجعت 302 بنجاح إذا (ResponseLogin.getStatusLine (). getStatusCode () == 302) {// إذا نجح التقديم ، اطلب الصفحة الرئيسية المعاد توجيهها مع ملف تعريف الارتباط والحصول على اسم الطالب httpget = new httpget (mainurl + unched) ؛ Mainget.Setheader ("ملف تعريف الارتباط" ، ملف تعريف الارتباط) ؛ Mainget.Setheader ("المرجع" ، loginurl) ؛ httpresponse review = client.execute (mainget) ؛ inputStream هو = prosesemain.getentity (). getContent () ؛ سلسلة html = "" ؛ حاول {html = ioutils.gethtml (IS ، "GB2312") ؛ } catch (استثناء e) {system.out.println ("فشل parse html!") ؛ E.PrintStackTrace () ؛ } stuname = jsoup.parse (html) .getElementById ("xhxm"). text () ؛ System.out.println ("تسجيل الدخول بنجاح! مرحبًا:" + undame) ؛ client.close () ؛ العودة صحيح. } آخر {system.out.println ("فشل تسجيل الدخول!") ؛ client.close () ؛ العودة كاذبة }} / ** * Query الفصول الفارغة * * Throws استثناء * * Throws استثناء * / public void queryclassroom (String xiaoqu ، String XQJ ، String SJD) يلقي الاستثناء {closablehttpclient client = httpclients.createdefault () ؛ String newQueryClassRommurl = QueryClassRoomUrl + undumber + "& xm =" + stuname + queryclassroomgnmkdm ؛ // url للترابط سلسلة الطلب parsesjd = parseutils.parseweek (sjd) ؛ // تحليل السلسلة المقابلة للسلسلة الحالية nowweek = dateUtils.getweek () ioutils.getViewState (newqueryclassRommurl ، ملف تعريف الارتباط ، mainurl + undumber) ؛ // alsapulate Query Freef Classroom request Parameters List <MameValUepair> QueryClassRoomPair = new ArrayList <MameValUepair> () ؛ QueryClassRoomPair.add (New BasicNameValuePair ("__ EventTarget" ، "")) ؛ QueryClassRoomPair.add (New BasicNameValuePair ("__ eventArgument" ، "")) ؛ QueryClassRoomPair .add (New BasicNameValuePair ("__ ViewState" ، ViewState)) ؛ QueryClassRoomPair.add (New BasicNameValuePair ("Xiaoq" ، Xiaoqu) ؛ // نوع الحرم الجامعي ، الافتراضي إلى West Campus QueryClassroomPair.add (New BasicNameValuePair ("JSLB" ، "") BasicNameValuePair ("min_zws" ، "0")) ؛ // الحد الأدنى لعدد المقاعد ، الافتراضي إلى 0 queryclassroompair.add (New BasicNameValuepair ("max_zws" ، "")) ؛ Nowweek))) QueryClassRoomPair.add (New BasicNameValuePair ("DDLDSZ" ، "")) ؛ للأسابيع الفردية والمزدوجة ، الافتراضي لـ QueryClassroomPair.add (New BasicNameValuepair ("SJD" ، parsesjd)) ؛ استفسار"))؛ QueryClassRoomPair.add (New BasicNameValuePair ("XN" ، "2015-2016")) ؛ QueryClassRoomPair.add (New BasicNameValuePair ("XQ" ، "2")) ؛ QueryClassRoomPair.add (New BasicNameValuePair ("ddlsyxn" ، "2015-2016")) ؛ QueryClassRoomPair.add (New 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 (entityclassroom) ؛ QueryClassRoomPost.Setheader ("المرجع" ، Mainurl + undumber) ؛ // تعيين معلومات الرأس 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 طريقة الفصول الدراسية الفارغة ، والوقت الافتراضي ، وطريقة الاستعلام غير المعلمة لجلسات الدورة * * throws ioException * throws clientprotocolexception */ public void queryclassroom () DateUtils.getNowCourse () + "" ؛ // احصل على الوقت الحالي ما هو الدرس الجديد JWGL (). QueryClassroom (Xixiaoqu ، Weekday ، SDJ) ؛ } / ** * Query Method Personal Score Method * * throws clientprotocolexception * throws ioException * / public void querystugrade (String Xn ، String XQ) يلقي clientprotocolexception ، ioException {closablehtttpclient client = httpclients.createdefault () ؛ String NewQueryStugRadeUrl = QueryStugRadeUrl + undumber + "& xm =" + stuname + querystugradegnmkd ؛ httppost querygradepost = new httppost (newquerystugradeurl) ؛ String ViewState = ioutils.getViewState (NewQueryStugRadeurl ، ملف تعريف الارتباط ، Mainurl + undumber) ؛ // alsapulate request parameters list <MameValUepair> QueryGradePair = new ArrayList <NameValuePair> () ؛ QueryGradePair.add (New BasicNameValuePair ("__ eventTarget" ، "")) ؛ QueryGradePair.add (New BasicNameValuePair ("__ eventArgument" ، "")) ؛ QueryGradePair.add (New BasicNameValuePair ("__ ViewState" ، ViewState)) ؛ QueryGradePair.add (New BasicNameValuePair ("Hidlanguage" ، "")) ؛ QueryGradePair.add (New BasicNameValuePair ("DDLXN" ، XN)) ؛ // الدراسية QuerygradePair.add (New BasicNameValuepair ("DDLXQ" ، XQ)) ؛ QueryGradePair.add (New BasicNameValuePair ("BTN_XQ" ، "الصف الثاني")) ؛ QueryGradePost.Setheader ("ملف تعريف الارتباط" ، ملف تعريف الارتباط) ؛ QueryGradePost.Setheader ("المرجع" ، mainurl + undumber) ؛ urlencodedformentity entityger = urlencodedformentity (QueryGradePair) ؛ QueryGradePost.setentity (entitygrad) ؛ httpresponse reviewQueryGradePost = client.execute (QueryGradePost) ؛ String randhtml = ioutils.gethtml (responquerygradepost.getentity () .getContent () ، "GB2312") ؛ // system.out.println (denehtml) ؛ Document GradedOc = jsoup.parse (denehtml) ؛ عناصر 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) {if (i + 15 <elegrade.size ()) {system.out.print (elegrade.get (i) .text () + "") ؛ i = i + 5 ؛ system.out.print (elgreade.get (i) .text ()) ؛ system.out.println () ؛ } client.close () ؛ }} / ** * استعلام جدول الفئة الشخصية طريقة * * param xnd * param xqd * throws clientprotocolexception * throws ioException * / public void querystucourse (String xnd ، string xqd) remplicationprotocolexception ، ioexception {closleablehttpclientstiveLients. String NewQueryStucourseUrl = QueryStucourceUrl + undumber + "& xm =" + stuname + querystucourdgnmkd ؛ String ViewState = ioutils.getViewState (NewQueryStucourseurl ، ملف تعريف الارتباط ، Mainurl + undumber) ؛ httppost QueryStucourcePost = new httppost (newquerystucourseurl) ؛ قائمة <MameValUepair> StucoursePair = new ArrayList <AameValUepair> () ؛ StucoursePair.add (New BasicNameValuePair ("__ eventTarget" ، "XQD")) ؛ StucoursePair.add (New BasicNameValuePair ("__ eventArgument" ، "")) ؛ StucoursePair.add (New BasicNameValuePair ("__ ViewState" ، ViewState)) ؛ StucoursePair.add (New BasicNameValuePair ("XND" ، XND)) ؛ StucoursePair.add (New BasicNameValuePair ("XQD" ، XQD)) ؛ urlencodedformentity entitysource = urlencodedformentity (StucoursePair) ؛ QueryStucourcePost.setentity (entitySource) ؛ QueryStucourcePost.Setheader ("ملف تعريف الارتباط" ، ملف تعريف الارتباط) ؛ QueryStucourcePost.Setheader ("المرجع" ، mainurl + undumber) ؛ httpresponse reseStucourse = client.execute (QueryStucoursePost) ؛ سلسلة html = ioutils.gethtml (responStucource.getentity () .getContent () ، "GB2312") ؛ doccourse المستند = jsoup.parse (html) ؛ العناصر lemourse = doccourse.select ("td") ؛ لـ (int i = 2 ؛ i <elecourse.size () ؛ i ++) {system.out.print (leteCourse.get (i) .text ()+"") ؛ if (i ٪ 9 == 0) {system.out.println () ؛ }}} public static void main (string [] 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 ("Query Empty Classroom Test ------") ؛ jw.queryclassroom () ؛ System.out.println ("اختبار جدول الفئة الشخصية --------") ؛ jw.querystucourse ("2014-2015" ، "1") ؛ } catch (clientProtocolexception e) {E.PrintStackTrace () ؛ } catch (ioException e) {E.PrintStackTrace () ؛ } catch (استثناء 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 {Static String start Day = GlobalConstant.start_day ؛ // تاريخ البدء في نهاية اليوم الأساسي endday = GlobalConstant.end_day ؛ // Holiday Date/*** احصل على الفئة الحالية أن الفصل هو الوقت الحالي ، فقط بين 8-16 Ow-Owclock ، والفئران هو 1 و 2 فئة أخرى. * * return */ public static int getNowCourse () {simpledateformat df = new SimpleToThformat ("HH: mm: ss") ؛ // SET Date Format NowDate = df.format (New Date ()) ؛ 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 ؛ } آخر {return 1 ؛ }} / ** * احصل على ما هو الأسبوع الحالي هو * * return * / public static int getWeek () {int days = 0 ؛ int nowweek = 0 ؛ TREE {SimpleDateFormat df = new SimpleDateFormat ("Yyyy-MM-DD") ؛ // قم بتعيين سلسلة تنسيق التاريخ NowDate = df.format (Date ()) ؛ int nowdaysbetween = daysbetween (start Day ، Nowdate) + 1 ؛ أيام = DaysBetween (يوم البدء ، النهائي) ؛ int x = nowdaySbetween ٪ 7 ؛ if (x == 0) {nowweek = nowdaysbetween / 7 ؛ } آخر {nowweek = nowdaysbetween / 7 + 1 ؛ }} catch (parseException e) {system.out.println ("تاريخ الإدخال غير قانوني ، فشل تاريخ التحليل") ؛ E.PrintStackTrace () ؛ } العودة nowweek ؛ } / ** * الحصول على الوقت الحالي هو يوم الأسبوع * * @RETURN * / public static int getWeekday () {calendar cal = calendar.getInstance () ؛ Cal.Settime (New Date ()) ؛ 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 daybetween (string start day ، string endday) يلقي parseException {simpleDateFormat sdf = new simpleDateThormat ( Calendar Cal = Calendar.getInstance () ؛ Cal.Settime (sdf.parse (start Day)) ؛ time 1 = cal.getTimeInMillis () ؛ Cal.Settime (sdf.parse (enday)) ؛ الوقت long2 = cal.getTimeInMillis () ؛ طويل بين_days = (time2 - time1) / (1000 * 3600 * 24) ؛ إرجاع integer.parseint (string.valueof (inter_days)) ؛ }/ ** * وقت إرجاع نوع النظام في yyyy-mm-dd hh: mm: ss format * * @regurn */ public static string getNowDate () {simpledateformat df = new SimplEdatformat ("yyyy-mm-dd hh: mm: ss") }} 3.globalconstant.java
حزمة com.ican.yueban.utils ؛ /*** جميع التعريفات الثابتة لهذا النظام** Author Song Kaizong**/Public Interface GlobalConstant {public Static Final String start_day = "2016-02-29" ؛ السلسلة النهائية الثابتة العامة end_day = "2016-07-10" ؛ السلسلة النهائية الثابتة العامة index_url = "http://jwgl2.ujn.edu.cn" ؛ // الصفحة الرئيسية لنظام Jida Academic System Public Static Final Final Secretcode_url = "http://jwgl2.ujn.edu.cn/Checkcode.aspx" ؛ "http://jwgl2.ujn.edu.cn/default2.aspx" ؛ = "http://jwgl2.ujn.edu.cn/xxjsjy.aspx؟xh=" ؛ "http://jwgl2.ujn.edu.cn/xskbcx.aspx؟xh=" ؛ "http://jwgl2.ujn.edu.cn/xscjcx.aspx؟xh=" ؛ Static Final String Xixiaoqu = "1" ؛ // Jidaxi Campus Logo Public Static Final String Dongxiaoqu = "2" ؛ "" 1 '' | '1' ، '0' ، '0' ، '0' ، '0' ، '0' ، '0' '؛ // 1 ، 2 static final string class2 = "2' | '0' ، '3' ، '0' ، 0 '، 0' ، 0 '،' 0 '،' 0 '،' 0 ' "" 3 '|' 0 '،' 0 '،' 5 '،' 0 '،' 0 '،' 0 '،' 0 '،' 0 '' ؛ "" 5 '|' 0 '،' 0 '،' 0 '،' 0 '،' 9 '،' 0 '،' 0 '،' 0 '' ؛ "" 7 '|' 1 '،' 3 '،' 0 '،' 0 '،' 0 '،' 0 '،' 0 '،' 0 '' ؛ "" 8 '|' 0 '،' 0 '،' 5 '،' 7 '،' 0 '،' 0 '،' 0 '،' 0 '' ؛ "" 10 '|' 0 '،' 0 '،' 0 '،' 0 '،' 0 '،' 9 '،' 11 '،' 0 '،' 0 '،' '؛ btn_xueqi = "btn_xq" ؛ // درس درس دراسي عام Static Final String btn_xuenian = "btn_xn" ؛ // الدرجات الأكاديمية الدراسية في السلسلة النهائية الثابتة العامة btn_linian = "btn_zcj user_state_n = "1" ؛ // static final string static user_state_y = "2" ؛ // معتمدة من قبل السلسلة النهائية الثابتة العامة comment_type_newthings = "1" ؛ 4.ioutils.java
حزمة com.ican.yueban.utils ؛ استيراد java.awt.rectangle ؛ استيراد java.awt.image.bufferedImage ؛ import java.io.bytearrayoutputstream ؛ import java.io.file ؛ import java.io java.io.outputstream ؛ import java.net.url ؛ import java.net.urlconnection ؛ import 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 ؛ import org.apache.http.impl.client.closablehttpclient ؛ import org.http.impl.httttpclient ؛ الفئة العامة ioutils { / ** * حدد تنسيق الترميز وقم بتحويل دفق الإدخال إلى سلسلة * * param هو * regurn * throws ioException * / سلسلة ثابتة عامة gethtml (inputStream is ، string charsing) يلقي iOexception {bytearrayouttream bos = new bytearrayoutstream () ؛ Byte [] Buffer = New Byte [1024] ؛ int len = 0 ؛ بينما ((len = is.read (buffer))! = -1) {bos.write (buffer ، 0 ، len) ؛ } is.close () ؛ إرجاع سلسلة جديدة (bos.tobytearray () ، الترميز) ؛ } / ** * تنزيل صورة * * param urlstring * param filename * param savepath * throws استثناء * / تنزيل باطل ثابت عام (سلسلة urlstring ، اسم سلسلة السلسلة ، سلسلة SavePath) يلقي استثناء {// construct url url url = new url (urlstring) ؛ // Open Connection urlConnection con = url.openconnection () ؛ // قم بتعيين مهلة الطلب على 5S Con.SetConnectTimeout (5 * 1000) ؛ // Inport Dream inputStream هو = con.getInputStream () ؛ // 1K BYTE BYTE [] BS = NEW BYTE [1024] ؛ // قراءة طول البيانات int len ؛ // file file file file sf = new file (savePath) ؛ if (! sf.exists ()) {sf.mkdirs () ؛ } outputStream OS = جديد fileOutputStream (sf.getPath () + "//" + filename) ؛ // ابدأ القراءة أثناء ((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 * / public static void cutimage (String src ، string dest ، int y ، int w ، 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 * / public static string getencoding (String str) {string encode = "gb2312" ؛ جرب {if (str.equals (سلسلة جديدة (str.getBytes (encode) ، encode)))) {string s = encode ؛ العودة s ؛ }} catch (استثناء استثناء) {} encode = "ISO-8859-1" ؛ جرب {if (str.equals (سلسلة جديدة (str.getBytes (encode) ، encode))))) {String S1 = encode ؛ إرجاع S1 ؛ }} catch (استثناء استثناء 1) {} encode = "utf-8" ؛ جرب {if (str.equals (سلسلة جديدة (str.getBytes (encode) ، encode))))) {String S2 = encode ؛ إرجاع S2 ؛ }} catch (استثناء استثناء 2) {} encode = "gbk" ؛ حاول {if (str.equals (سلسلة جديدة (str.getBytes (encode) ، encode)))) {String S3 = encode ؛ إرجاع S3 ؛ }} catch (استثناء استثناء 3) {} return "غير معروف" ؛ } / ** * قم بتحويل دفق الإدخال إلى صورة ---》 احصل على رمز التحقق * * param هو * param filename * param savepath * therws استثناء * / public static void getSecret (inputStream is ، string filename) string savepath) استثناء {// 1k data byte [] bs = new byte [1024] ؛ // طول بيانات القراءة int len ؛ // ملف تدفق ملف الإخراج sf = ملف جديد (SavePath) ؛ if (! sf.exists ()) {sf.mkdirs () ؛ } outputStream OS = جديد fileOutputStream (sf.getPath () + "//" + filename) ؛ // ابدأ القراءة أثناء ((len = is.read (bs))! = -1) {os.write (bs ، 0 ، len) ؛ } // الانتهاء ، أغلق جميع الروابط os.close () ؛ is.close () ؛ } / ** * احصل على قيمة __viewstate للحقل المخفي * * param url * param cookie * @param referen ClientProtocolexception ، ioException {closleablehttpclient 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 * / public static string parseweek (string course) {string sjd = "" ؛ int nowcourse = integer.parseint (بالطبع) ؛ Switch (Nowcourse) {case 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 ؛ استراحة؛ } إرجاع SJD ؛ }}ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.