Cet article partage des informations sur la connexion de la simulation Java aux affaires académiques de Zhengfang pour capturer les résultats, les horaires de classe, les salles de classe vides, etc. pour votre référence. Le contenu spécifique est le suivant
1.jwgl.java
Package Com.ican.yueban.jwgl; Importer java.io.ioException; import java.io.inputstream; import java.util.arraylist; import java.util.list; import java.util.scanner; import org.apache.http.httpResponse; import org.apache.http.namevaluepair; import org.apache.http.client.clientprotocolexception; import org.apache.http.client.entity.urlencodedFormentity; import; org.apache.http.client.methods.closeablehttpResponse; import org.apache.http.client.methods.httpget; import org.apache.http.impl.methods.httppost; org.apache.http.impl.client.httpclients; import org.apache.http.impl.client.httpclients; import org.apache.http.message.basicNamevaluepair; import org.jsoup.jsoup; import org.jsoup.Nodes.Document; import org.jsoup; import com.ican.yueban.utils.dateutils; import com.ican.yueban.utils.globalconstant; import com.ican.yueban.utils.ioutils; import com.ican.yueban.utils.parseutils; classe publique jwgl {private static string sntamumber = ""; String statique privé étalame = ""; Cookie à chaîne statique privée = ""; index de chaîne privée = globalConstant.index_url; String privé SecrétCodeUrl = GlobalConstant.SecretCode_Url; chaîne privée Loginurl = globalConstant.login_url; String privé Mainurl = globalConstant.main_url; chaîne privée queryClassroomUrl = globalConstant.Query_Classroom_url; chaîne privée QueryClassroomgnmkdm = globalConstant.Query_classroom_gnmkdm; chaîne privée querystugradeUrl = globalConstant.Query_Stu_grade_url; chaîne privée querystugradegnmkd = globalConstant.Query_Stu_grade_gnmkdm; String privé QueryStucourseUrl = globalConstant.Query_Stu_Cème_Url; String privé QueryStuMoursGnmkd = GlobalConstant.Query_Stu_Cème_Gnmkdm; String privé xixiaoqu = globalConstant.Xixiaoqu; String privé identitystu = globalConstant.Identity_Stu; / ** * Fonction de connexion * * @Param Scursember * @param mot de passe * @return * @Throws Exception * @throws UnportEperationException * / Public Boolean Login (String Scursembumber, String Password) lève UnsupportEdOperException, Exception {this.stumber = Strucymbumber; // obtient le code de vérification httpget secrcodeget = new httpget (SecretCodeurl); CLOSEableHttpClient client = httpClients.CreateDefault (); CloseableHttpResponse ResponseSeCret = client.Exécute (SecretCodeGet); // obtient le cookie retourné Cookie = réponseCret.getFiRStheader ("set-cookie"). GetValue (); String ViewState = ioutils.getViewstate (indexUrl, "", ""); // Téléchargez le code de vérification sur le disque C ioutils.getSecret (ResponseSeCret.getEntity (). GetContent (), "SecretCode.png", "c: //"); Scanner SC = nouveau scanner (System.in); System.out.println ("Veuillez saisir le code de vérification:"); // Remplissez manuellement la valeur du code de vérification que vous venez d'obtenir String Secret = sc.next (). Trim (); Httppost LoginPost = new httppost (loginurl); // créer une demande de connexion LoginPost.sethEader ("cookie", cookie); // apporte la première liste de cookie demandée <NameValuepair> nameValuepairlogin = new ArrayList <NameValuepair> (); BasicNameValuePair ("__ ViewState", ViewState)); // Masquer la valeur de formulaire NameValuepairLogin .Add (New BasicNameValuepair ("txtusername", Sturalumber)); // Étudiant ID NameValuepairlogin.Add (New BasicNameValuepair ("TextBox2", Password)); //word-nom BasicNameValuePair ("txtSseCretCode", secret)); // Code de vérification NameValuepairLogin.Add (new BasicNameValuepair ("RadiobuttonList1", IdentityStu)); // Identity, Default Student NameValuepairlogin.Add (New BasicNameValuePair ("Button1", "); nameValuepairlogin.add (new BasicNameValuepair ("LBlanguage", "")); nameValuepairLogin.add (new BasicNameValuepair ("Hidpdrs", "")); nameValuepairlogin.add (new BasicNameValuepair ("HIDSC", "")); UrLencodedFormentity Entity = New UrlencodedFormentity (nameValuepairlogin, "GB2312"); LoginPost.SetEntity (entité); HttpResponse ResponseLogin = client.Execute (loginPost); // client1.close (); // Étape 3: Déterminez si les données soumises sont réussies et renvoyez 302 avec succès si (ResponseLogin.getStatusline (). GetStaturcode () == 302) {// Si la soumission est réussie, demandez la page principale redirigée avec un cookie et obtenez le nom étudiant Httpget Mainget = New Httpget (Mainurl + Stumber); Mainget.Setheader ("Cookie", cookie); Mainget.sethEader ("référente", Loginurl); HttpResponse ResponseMain = client.Execute (Mainget); InputStream est = ResponseMain.getEntity (). GetContent (); String html = ""; essayez {html = ioutils.gethtml (IS, "gb2312"); } catch (exception e) {System.out.println ("Parse html a échoué!"); e.printStackTrace (); } stuname = jsoup.parse (html) .getElementById ("xhxm"). text (); System.out.println ("Connexion avec succès! Bienvenue:" + étourdisse); client.close (); Retour Vrai; } else {System.out.println ("Login a échoué!"); client.close (); retourne false; }} / ** * Recherchez la salle de classe vide * * @throws exception * * @throws exception * / public void QueryClassroom (String xiaoqu, String xqj, String sjd) lance l'exception {CloseableHttpClient client = httpclients.createdefault (); String newQueryClassrommurl = queryClassroomurl + Sc Unimber + "& xm =" + stuname + QueryClassroomgnmkdm; // URL pour la demande d'épissage chaîne parsesjd = parseutils.parseweek (sjd); // analyse la chaîne correspondant à la section actuelle NowWeek = DateUtils.getweek () + ""; Ioutils.getViewState (newQueryClassrommurl, cookie, mainurl + trouble); // encapsule des paramètres de demande de classe de classe de requête en classe <nameValuepair> queryClassroompair = new ArrayList <NameValuepair> (); queryClassroompair.add (new BasicNameValuepair ("__ EventTarget", "")); queryClassroompair.add (new BasicNameValuepair ("__ EventArgument", "")); queryClassroompair .add (new BasicNameValuepair ("__ ViewState", ViewState)); QueryClassroompair.add (nouveau BasicNameValuepair ("xiaoq", xiaoqu)); // type de campus, par défaut à West Campus QueryClassroompair.Add (New BasicNameValuepair ("JSLB", "")); // catégorie de classe, défaut à vide QueryClasspair.Add (New BasicNamevaluepair ("Min_zwpair.add (newnamevaluepair (" Min_zwpair.Add (New "0"))); // le nombre minimum de sièges, par défaut à 0 queryClassroompair.add (new BasicNameValuepair ("max_zws", "")); // le nombre maximum de sièges, par défaut à la question de la queryclasse queryClassroompair.add (new BasicNameValuepair ("ddljsz", NowWeek)); // terminer la semaine, par défaut à la semaine actuelle QueryClassroompair.add (New BasicNameValuepair ("xqj", xqj)); // le jour de la semaine, par défaut au Jour de QueryClassroompair.add (new BasicNameValuePair ("ddldsz", "")); // pour les semaines impairs et doubles, par défaut sur QueryClassroompair.add (new BasicNameValuepair ("SJD", parsesjd)); // quelle section QueryClassroompair.add (new BasicNameValuepair ("Button2", "vide Classroom")); 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 = Nouveau UrlencodedFormentity (QueryClassroompair); HTTPPOST QUERYCLASSORMOSTOST = NOUVEAU HTTPPOST (NewQueryClassrommurl); // NewQueryClassrommurl Exemple: http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=20121214104&xm=xxx&gnmkdm=n121611 QueryClassroompost.Settentity (EntityClassroom); QueryClassroompost.sethEader ("référente", Mainurl + Stunobumber); // Set Header Information QueryClassroompost.sethEader ("cookie", cookie); HttpResponse ResponseClassroom = client.Exécute (queryClassroompost); InputStream est = ResponseClassroom.GetEntity (). GetContent (); String html = ioutils.gethtml (IS, "GB2312"); Document doc = jsoup.parse (html); Elements eleclassroom = doc.select ("td"); Elements eleinfo = doc.select ("# lblbt"); System.out.println (eleinfo.get (0) .Text ()); pour (int i = 0; i <eleclassroom.size (); i ++) {// Imprimez uniquement le nom de la classe if (i% 8 == 1) {System.out.println (eleclassroom.get (i) .text ()); }} client.close (); } / ** * La méthode de classe de surcharge de requête de surcharge, le temps par défaut et la méthode de requête sans paramètres pour les sessions de cours * * @throws ioException * @throws clientProtocoLException * / public void queryClassroom () lance ClientProtoColException, ioException, exception {String WeekDay = DateUtils.getWeekday () + ""; // Getting the actuel est le jour est le jour de la semaine de la semaine de la semaine de la semaine de la semaine de la semaine du jour de la chaîne SDJ) DateUtils.getNowCourse () + ""; // Obtenez l'heure actuelle quelle leçon est new JWGL (). QueryClassroom (xixiaoqu, en semaine, SDJ); } / ** * Méthode de score personnel de requête * * @throws ClientProtoCoLexception * @throws ioException * / public void QueryStugRade (String xn, String xq) lève ClientProtocolexception, ioException {closablehttpclient client = httpclient.createDefault (); String newQueryStugRadeUrl = queryStugRadeUrl + Sc Umberm + "& xm =" + stuname + querystugradegnmkd; HTTPPOST QUERYRDDOSTOST = NOUVEAU HTTPPOST (NewQueryStugRadeUrl); String ViewState = ioutils.getViewstate (newQueryStugRadeUrl, cookie, mainurl + s8); // encapsule les paramètres de la demande Liste <nameValuepair> queryDelepair = new ArrayList <NameValuepair> (); QueryRedEpair.Add (New BasicNameValuePair ("__ EventTarget", "")); queryradepair.add (new BasicNameValuePair ("__ EventArgument", "")); querygradepair.add (new BasicNameValuePair ("__ ViewState", ViewState)); QueryRedEpair.Add (New BasicNameValuePair ("HidLanguage", "")); QueryRedEpair.Add (new BasicNameValuePair ("ddlxn", xn)); // année scolaire QueryRedEpair.Add (new BasicNameValuepair ("ddlxq", xq)); // semestriers QueryradePep.Add (new BasicNameValuepair ("DDL_KCXZ", ""); QueryRedEpair.Add (new BasicNameValuePair ("BTN_XQ", "Deuxième Grade")); querygradepost.setheader ("cookie", cookie); querygradepost.sethEader ("référence", Mainurl + Sc Unumber); UrLencodedFormentity EntityGrade = new UrLencocedFormentity (QueryRedEpair); QueryGradePost.SetEntity (EntityGrade); HttpResponse ResponseQueryRedPost = client.Exécute (QueryGradePost); String GradeHtml = ioutils.gethtml (responQueryRedOst.getEntity () .getContent (), "GB2312"); // System.out.println (gradeHTML); Document GradeDOC = JSoup.Parse (GradeHTML); Elements elegrade = gramedoc.select ("td"); // analyse le contenu HTML <TD> TAG selon les besoins et la sortie pour (int i = 0; i <7; i ++) {System.out.println (elegrade.get (i) .text ()); } pour (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 (elegrade.get (i) .text ()); System.out.println (); } client.close (); }} / ** * Méthode de calendrier de classe personnelle de requête * * @param xnd * @param xqd * @throws clientProtocoLexception * @throws ioException * / public void querystuMours (String xnd, string xqd) lance le clientProtocolexception, ioException {closeablehttpclient client = httpcllice.createDault (); String newQueryStucourseUrl = QueryStucoursUrl + Scurse-Scurse + "& xm =" + stuname + QueryStucoursegGnmkd; String ViewState = ioutils.getViewstate (newQueryStucoursUrl, Cookie, Mainurl + Scursember); HTTPPOST QUARYSUMEMEETPOST = NOUVEAU HTTPPOST (NewQueryStucourseUrl); List <nameValuepair> studuMoursPair = new ArrayList <NameValuepair> (); Stucoursepair.add (new BasicNameValuepair ("__ EventTarget", "xqd")); Stucoursepair.add (New BasicNameValuepair ("__ Eventargument", "")); Stucoursepair.add (new BasicNameValuepair ("__ ViewState", ViewState)); StudumoursPair.add (New BasicNameValuepair ("xnd", xnd)); Stucoursepair.add (new BasicNameValuepair ("xqd", xqd)); UrLencodedFormentity EntitySource = New UrlencodedFormentity (studuMoursPair); QuerystucoursePost.Settentity (EntitySource); QuerystucoursePost.Setheader ("cookie", cookie); QuerystucoursePost.sethEader ("référente", Mainurl + Stumber); HttpResponse ResponseStumeMours = client.Exécute (QueryStucoursurePost); String html = ioutils.gethtml (ResponseStucours.gentity () .getContent (), "GB2312"); Document doccourse = jsoup.parse (html); Éléments éléments = doccourse.select ("td"); pour (int i = 2; i <elecourse.size (); i ++) {System.out.print (elecourse.get (i) .text () + ""); if (i% 9 == 0) {System.out.println (); }}} public static void main (String [] args) {jwgl jw = new JWGL (); essayez {jw.login ("voici le numéro d'étudiant", "voici le mot de passe"); System.out.println ("Test de score de requête -------"); JW.QueryStugrade ("2015-2016", "1"); // Interroger le campus West, lundi, section 12 Test de classe vide. // JW.QueryClassroom ("1", "1", "2"); System.out.println ("requête Test de classe vide ------"); JW.QueryClassroom (); System.out.println ("requête Test de calendrier de classe personnelle --------"); JW.QueryStuccourse ("2014-2015", "1"); } catch (clientProtoCoLexception e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); } catch (exception e) {e.printStackTrace (); } // qq: 451209214}} 2.DateUtils.java
Package Com.ican.yueban.utils; import java.text.parseException; import java.text.simpledateFormat; import java.util.calendar; import java.util.date; Classe publique DateUtils {private static String Startday = GlobalConstant.Start_day; // Date de début String Static private Endday = GlobalConstant.end_day; // Date de vacances / ** * Obtenez la classe actuelle de cette classe à d'autres moments. * * @return * / public static int getNowCourse () {SimpledateFormat df = new SimpledateFormat ("HH: MM: SS"); // Set Date Format String NowDate = df.format (new Date ()); if (NowDate.startswith ("08") || NowDate.startswith ("09")) {return 1; // 12 leçons. } else if (NowDate.startswith ("10") || NowDate.startswith ("11")) {return 2; // 34 leçons, et ainsi de suite. } else if (nowDate.startswith ("12") || nowDate.startswith ("13") || NowDate.startswith ("14")) {return 3; } else if (NowDate.startswith ("15") || NowDate.startswith ("16")) {return 4; } else {return 1; }} / ** * Obtenez quelle semaine l'heure actuelle est * * @return * / public static int getWeek () {int days = 0; int nowweek = 0; try {SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd"); // définir la chaîne de format de date NowDate = df.Format (new Date ()); int nowdaysbetween = daysbetween (de la journée, NOWDATE) + 1; Days = Daysbetween (à l'étranger, en fin de journée); int x = nowdaysbetween% 7; if (x == 0) {nowweek = nowdaysbetween / 7; } else {nowweek = nowdaysbetween / 7 + 1; }} catch (parseException e) {System.out.println ("La date d'entrée est illégale, la date d'analyse a échoué"); e.printStackTrace (); } return nowek; } / ** * Obtenez l'heure actuelle est le jour de la semaine * * @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; } / ** * Calculez le nombre de jours entre deux dates de type de chaîne * * @param à l'étranger * @param ennemi * @return * @throws parseException * / public static int Daysbetween (String Starday, String Finday) lève ParseException {SimpledateFormat sdf = new SimpledateFormat ("Yyyym-dd"); Calendar cal = calendar.getInstance (); Cal.setTime (sdf.parse (destruction)); long time1 = cal.getTimeInmillis (); Cal.setTime (sdf.parse (Finday)); long time2 = cal.getTimeInmillis (); long entre_days = (Time2 - Time1) / (1000 * 3600 * 24); return Integer.ParseInt (String.ValueOf (Entre_Days)); } / ** * Retour Type de chaîne Temps du système dans yyyy-mm-dd hh: mm: ss Format * * @return * / public static String getNowDate () {SimpledateFormat df = new SimpledateFormat ("yyyy-mm-dd hh: mm: ss"); // set le format date return df.format (new Date ()); }} 3.globalConstant.java
Package Com.ican.yueban.utils; / ** * Toutes les définitions constantes de ce système * * @Author Song Kaizong * * / interface publique GlobalConstant {public static final String start_day = "2016-02-29"; Public Static Final String end_day = "2016-07-10"; Index de chaîne finale statique publique_url = "http://jwgl2.ujn.edu.cn"; // Page d'accueil du système académique JIDA Système publique statique final statistique sécrétcode_url = "http://jwgl2.ujn.edu.cn/checkcode.aspx" "http://jwgl2.ujn.edu.cn/default2.aspx" ;// jida académique Système Page de connexion publique Static final chaîne main_url =" http://jwgl2.ujn.edu.cn/xs_main.aspx?xh=" "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=" ;// jida requête lien de classe vide public statique final statique query_classroom_gnmkdm =" & gnmkdm = n121611 "; // jida query classroom gnmkdm public static final string statique query_stu_urcours_url = "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=" ;// jida requête calendrier personnel lien public static final String Query_Stu_Cème_Gnmkdm =" & gnmkdm = n121603 "; // jida enquête Personnel Course gnmkdm publique "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=" ;// jida enquête Score personnel lien public static final string question_stu_grade_gnmkdm =" & gnmkdm static static static wring identity_stu = kida " String final xixiaoqu = "1"; // Jidaxi Campus Logo public static final String dongxiaoqu = "2"; // Jidadong Campus Logo public static final chaîne zhangqiuxiaoqu = "3"; // jida zhangqiu campus logo public static final string class1 = "'1' | '1', '0', '0', '0', '0', '0', '0'"; // 1, 2 public static final String Class2 = "" 2 '|' 0 ',' 3 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ''; // SECTION 3, 4 STATIQU "'3' | '0', '0', '5', '0', '0', '0', '0', '0'"; // Section 5, 6 public static final string class4 = '' 4 '|' 0 ',' 0 ',' 0 ',' 0 ',' 7 ',' 0 ',' 0 ',' 0 ''; // Section 7, 8 public static static class5 = final class5 = "'5' | '0', '0', '0', '0', '9', '0', '0', '0'"; // 8, 10 sections public static final string class6 = '' 6 '|' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 11 ',' 0 ',' 0 ',' 0 '' '' '' '' '' 11, 12 SECTIONS PUBLIC STATIQUE CLASS7 = '0', '0' '' '' '' '' "'7' | '1', '3', '0', '0', '0', '0', '0', '0'"; // 11, 12 sections public static final string class7 = '' 7 '|' 1 ',' 3 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 ''; // 11, 12 SECTION "'8' | '0', '0', '5', '7', '0', '0', '0', '0'"; // dans l'après-midi Static Final String class9 = '' 9 '|' 1 ',' 3 ',' 5 ',' 7 ',' 0 ',' 0 ',' 0 ',' 0 ''; // dans le jour de la STATIQUE STATIQU "'10' | '0', '0', '0', '0', '0', '9', '11', '0', '0', '0'"; // in the Evening public static final string class11 = '' 11 '|' 1 ',' 3 ',' 5 ',' 7 ',' 9 ',' 11 ',' 0 ',' 0 ',' 0 '' '' '' 'STRACLE FINATIQUE FINATIQUE BTN = "btn_xq"; // Scores semestriers String final statique public btn_xuenian = "btn_xn"; // scores de l'année académique STATIQUE STATIQUE FINAL BTN_LINIAN = "BTN_ZCJ"; // Années précédentes Scores publiques Static Final String University_code_ujn = "00001"; "1"; // UNCERTIFIET public static final String user_state_y = "2"; // certifié par public static final string comment_type_newthings = "1"; // commentaire type 1: Nouvelle chaîne finale statique publique comment_type_interest = "2"; // commentaire de type 2: activité d'intérêt statique} commentaire 4.ioutils.java
Package Com.ican.yueban.utils; Importer java.awt.rectangle; import java.awt.image.bufferedImage; import java.io.bytearrayoutputStream; import java.io.file; import java.io.fileInputstream; import java.io.fileoutStream; importer java.ioexect; import java.io.inputStream; importat java.io.outputStream; import java.net.url; import java.net.urlconnection; import java.util.iterator; import javax.imageio.imageio; import javax.imageio.imageReadParam; import javax.imageio.imageReader; import javax.imageio.stream.imageInputStream; import org.apache.http.client.clientprotocolexception; import org.apache.http.client.methods.httpget; import org.apache.http.impl.client.closeablehttpclient; import org.apache.http.impl.client.httpclient; import org.jsoup.jsoup; La classe publique Ioutils {/ ** * Spécifiez le format d'encodage et convertissez le flux d'entrée en une chaîne * * @param est * @return * @throws ioException * / public static string gethtml (InputStream is, String Encoding) lance ioException {byteArrayOutStream bos = new byTayoutPutStream (); octet [] tampon = nouveau octet [1024]; int len = 0; while ((len = is.read (tampon))! = -1) {bos.write (tampon, 0, len); } is.close (); return new String (bos.toByTearray (), codage); } / ** * Télécharger l'image * * @param urlstring * @param nom de fichier * @param sauvegarde * @throws exception * / public static void download (string urlstring, string filename, string savepath) lève exception {// construire url url = new URL (urlstring); // Open Connexion UrlConnection Con = url.OpenConnection (); // Définissez le délai de demande sur 5s con.setConnectTimeout (5 * 1000); // Le flux d'entrée InputStream est = con.getInputStream (); // Byte de mémoire tampon 1K [] BS = Nouveau octet [1024]; // Lire la longueur des données int len; // Fichier de flux de fichiers de sortie SF = nouveau fichier (SavePath); if (! sf.exists ()) {sf.mkDirs (); } OutputStream os = new FileOutputStream (sf.getPath () + "//" + filename); // commence à lire while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // complet, fermez tous les liens os.close (); is.close (); } / ** * Classe d'outils de recadrage d'image * * @param src * @param dest * @param x * @param y * @param w * @param h * @throws ioexception * / public static void Cutimage (String src, string dest, int x, int y, int w, int h) lance ioException {iterator iterator = Imageo.getImageRedersByFormAtName ("jpg"); ImageReader Reader = (ImageReReder) iterator.Next (); InputStream dans = new FileInputStream (SRC); ImageInputStream iis = imageo.CreateImageInputStream (in); Reader.SetInput (iis, true); ImageReadParam param = reader.getDefaulTreadParam (); Rectangle rect = nouveau rectangle (x, y, w, h); Param.SetSourceRegion (REct); BufferedImage Bi = Reader.read (0, param); ImageIo.Write (BI, "JPG", nouveau fichier (dest)); joindre(); } / ** * Encodage de caractères de juge Ensemble * * @param str * @return * / public static String getEncoding (String str) {String encode = "gb2312"; try {if (str.equals (new String (str.getBytes (Encode), Encode))) {String S = Encode; retour s; }} catch (exception exception) {} Encode = "ISO-8859-1"; try {if (str.equals (new String (str.getBytes (Encode), Encode)))) {String S1 = Encode; retour s1; }} catch (exception exception1) {} encode = "utf-8"; try {if (str.equals (new String (str.getBytes (Encode), Encode)))) {String S2 = Encode; retour s2; }} catch (exception exception2) {} Encode = "gbk"; try {if (str.equals (new String (str.getBytes (Encode), Encode))) {String S3 = Encode; retour s3; }} catch (exception exception3) {} return "inconnu"; } / ** * Convertir le flux d'entrée en une image ---》 Obtenez le code de vérification * * @param est * @param nom de fichier * @param sauvegarde * @throws exception * / public static void getSecret (entréestream is, string filen name, string savepath) lance exception {// 1k data buffer byte [] bs = new Byte [1024]; // la longueur de données de lecture int len; // le fichier de flux de sortie Fichier SF = nouveau fichier (SavePath); if (! sf.exists ()) {sf.mkDirs (); } OutputStream os = new FileOutputStream (sf.getPath () + "//" + filename); // commence à lire while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // fini, fermez tous les liens os.close (); is.close (); } / ** * Obtenez la valeur __ViewState du champ caché * * @param url * @param cookie * @param référer * @return * @Throws UnsupportedOperationException * @throws clientProtocolexception * @throws ioException * / public static string getViewState (String Url, String Cookie, String référente) lance IoException {CloseableHttpClient client = httpClients.CreateDefault (); Httpget getViewstate = new httpget (url); getViewstate.sethEader ("cookie", cookie); getViewState.sethEader ("référer", référer); // définir la chaîne d'informations d'en-tête s = ioutils.gethtml (client.Exécute (getViewState) .getEntity () .getContent (), "gb2312"); String ViewState = JSoup.Parse (S) .Select ("Input [name = __ ViewState]") .Val (); client.close (); return ViewState; }} 5. Parseutils.java
Package Com.ican.yueban.utils; classe publique Parseutils {/ ** * Obtenez la chaîne correspondant à la session de cours * @param cours * @return * / public static string parseweek (String Course) {String sjd = ""; int NOWCOURE = Integer.ParseInt (cours); switch (NowCourse) {cas 1: sjd = globalConstant.class1; casser; Cas 2: sjd = globalConstant.class2; casser; Cas 3: SJD = GlobalConstant.class3; casser; Cas 4: SJD = GlobalConstant.class4; casser; Cas 5: SJD = GlobalConstant.class5; casser; Cas 6: sjd = globalConstant.class6; casser; Cas 7: SJD = GlobalConstant.class7; casser; Cas 8: sjd = globalConstant.class8; casser; Cas 9: SJD = GlobalConstant.class9; casser; Cas 10: sjd = globalConstant.class10; casser; Cas 11: sjd = globalConstant.class11; casser; par défaut: sjd = globalConstant.class1; casser; } return sjd; }}Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.