В этой статье используется информация о входе в систему моделирования Java в академические дела Чжэнфанга, чтобы захватить результаты, графики классов, пустые классные комнаты и т. Д. Для вашей ссылки. Конкретный контент заключается в следующем
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; импорт org.apache.http.client.Entity.UrlencoDedForment; org.apache.http.client.methods.closablehttpresponse; import org.apache.http.client.methods.httpget; import org.apache.http.client.methods.htppost; импорт org.apache.http.impl.client. org.apache.http.impl.client.httpclients; import org.apache.http.impl.client.httpclients; импорт org.apache.http.message.basicnamevaluepair; импорт org.jsoup.jsoup; import org.jsoup.nocumper. Импорт com.ican.yueban.utils.dateutils; импорт com.ican.yueban.utils.globalconstant; импорт com.ican.yueban.utils.ioutils; импорт com.ican.yueban.utils.parseutils; открытый класс jwgl {private static String stunumber = ""; частная статическая строка Stuname = ""; частная статическая строка cookie = ""; Private String Indexurl = GlobalConstant.index_URL; Private String SecretCodeUrl = GlobalConstant.secretCode_url; частная строка loginurl = global constant.login_url; частная строка mainurl = global constant.main_url; Private String QueryClassroomuurl = GlobalConstant.query_classroom_url; Private String QueryClassroomgnmkdm = GlobalConstant.query_classroom_gnmkdm; Private String QueryStugRadeurl = GlobalConstant.query_stu_grade_url; Private String Querystugradegnmkd = globalconstant.query_stu_grade_gnmkdm; Private String QueryStucourseUrl = GlobalConstant.query_stu_course_url; private String QueryStucoursegnmkd = globalconstant.query_stu_course_gnmkdm; частная строка xixiaoqu = global constant.xixiaoqu; Private String IdentityStu = GlobalConstant.Identity_Stu; / ** * Функция входа в систему * * @param stunumber * @param password * @return * @throhs exception * @throws unsupportedoperationexception */ public boole login (String stunumber, String passwer) бросает UnsupportedOperationException, Exception {this.stunumber = stunumber; // Получить код проверки httpget secretcodeget = new httpget (secretcodeurl); ClevableHttpClient client = httpclients.createdefault (); ClosableHttpresponse responseecret = client.execute (secretCodeget); // Получить возвращенное cookie cookie = responsecret.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 («Пожалуйста, введите код проверки:»); // вручную заполнять значение только что проверенный код, который вы только что получили string secret = sc.next (). Trim (); Httppost loginpost = new httppost (LoginUrl); // Создать loginpost запрос в loginpost.setheader ("cookie", cookie); // Принесите первый запрошенный список cookie <mankvaluepair> namevaluepairlogin = new ArrayList <mankePair> ();// encapulate post -namevale -name -newepairrin. BasicNameValuePair ("__ ViewState", ViewState)); // скрыть значение значения формы namevaluePairlogin .Add (new BasicnameValuePair ("txtUsername", Elunumber)); // Студент идентификатор namevaluepairlogin.add (new basicnamevaluepair ("Textbox2", пароль); namevaluepairlogin.add (new BasicnamevaluePair ("txtSecretCode", secret)); // код проверки namevaluepairlogin.add (new basicnamevalueepair ("radiobuttonlist1", identitystu)); // identity, defultuepair ("radiobuttonlist1" (ineditystu)); // identity, defultuepair ("radiobuttonlist1" (inditystu)); // identity. "")); namevalueepairlogin.add (new basicnamevaluepair ("lblanguage", "" ")); namevaluepairlogin.add (new BasicnamevaluePair ("hidpdrs", "" ")); namevaluepairlogin.add (new BasicnamevaluePair ("hidsc", "")); Urlencodedformentity entity = new urlencodedformentity (namevalueepairlogin, "GB2312"); LoginPost.Setentity (Entity); Httpresponse responseelogin = client.execute (loginpost); // client1.close (); // Шаг 3: Определите, являются ли представленные данные успешными и успешно возвращайте 302 if (responseLogin.getStatusline (). GetStatuscode () == 302) {// Если подача успешная, запросите перенаправленную главную страницу с помощью cookie и получить имя студента httpget mainget = new httpget (mainurl + stunumber); mainget.setheader ("cookie", cookie); mainget.setheader («Реферат», Loginurl); Httpresponse responsemain = client.execute (mainget); InputStream is = respenseMain.getEntity (). GetContent (); String html = ""; try {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 ("login не удалось!"); client.close (); вернуть ложь; }} / ** * Запрос пустой класс * * @Throws Exception * * @Throws Exception * / public void QueryClassroom (String xiaoqu, String xqj, String sjd) Throws exection {useablehttpclient client = httpclients.createdefault (); String newQueryClassrommUrl = queryClassroomUrl + stuNumber + "&xm=" + stuName + queryClassroomGnmkdm;// Url for splicing request String parseSjd = ParseUtils.parseWeek(sjd);// parse the string corresponding to the current section String nowWeek = DateUtils.getWeek() + "";// Get the current week of String viewState = IOutils.getViewState (NewQueryClassRommurl, Cookie, Mainurl + Stunumber); // инкапсулировать запрос пустые параметры запросов класса. QueryClassroompair.Add (New BasicnameValuePair ("__ EventTarget", "" ")); QueryClassroompair.Add (New BasicNameValuePair ("__ EventArgument", "" ")); QueryClassroompair .Add (новый BasicNameValuePair ("__ ViewState", ViewState)); QueryClassroompair.Add (New BasicnameValuePair ("xiaoq", xiaoque)); // тип кампуса, по умолчанию в West Campus QueryClassroompair.Add (New BasicnamevaluePair ("jslb", "")); // категория классных комнат, DefloaLuePair. BasicNameValuePair ("min_zws", "0")); // Минимальное количество мест по умолчанию в 0 QueryClassroompair.Add (New BasicnameValuePair ("max_zws", "" ")); // максимальное количество мест, по умолчанию, Dement -queryclapor.AdddddDAMVAl -", "DdAMEPAIRS", ddAmePairzepaIrzepaIrzepaIrzaIRZEPAURS ", ddAmePairzepaIrzepaIrzailS." nowweek)); // первая неделя, по умолчанию в текущую неделю QueryClassroompair.add (New BasicnamevaluePair ("ddljsz", ownweek)); // Завершение недели, по умолчанию в текущую неделю Queryclassroompair.add (New Basicnamevaluepair (xqj, xqj); QueryClassroompair.Add (New BasicnameValuePair ("ddldsz", "")); // для нечетных и двойных недель по умолчанию в QueryClassroompair.Add (новый BasicNameValuePair ("sjd", Parsesjd)); // какой раздел QueryClassroom. Запрос")); 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 = new urlencodedformentity (Queryclassroom); 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 + Stunumber); // установить информацию о заголовке QueryClassroompost.setheader ("cookie", cookie); Httpresponse responseclassroom = client.execute (queryclassroompost); InputStream is = respenseClassroom.getEntity (). GetContent (); String html = ioutils.gethtml (is, "gb2312"); Документ doc = jsoup.parse (html); Элементы Eleclassroom = doc.select ("TD"); Элементы eleinfo = doc.select ("#lblbt"); System.out.println (eleinfo.get (0) .Text ()); for (int i = 0; i <electrassroom.size (); i ++) {// только печатать имя класса if (i % 8 == 1) {System.out.println (eleclassroom.get (i) .Text ()); }} client.close (); }/ ** * Запрос перегрузки пустой метод класса, время по умолчанию и метод запроса без параметра для сеансов курсов * * @Throws ioException * @Throws clientProtocolexception */ public void QueryClassroom () Throws ClientProtocoleXcept Dateutils.getnowcourse () + ""; // Получите текущее время, какой урок является новым JWGL (). QueryClassroom (xixiaoqu, Weekday, SDJ); } / ** * Запрос метод личной оценки * * @Throws ClientProtoColeXception * @Throws ioException * / public void QueryStugrade (String XN, String XQ) Throws ClientProtocolexception, ioException {stockablehttpclient client = httpclients.createdefault (); String newQueryStugRadeurl = QueryStugRadeurl + Stunumber + "& xm =" + Stuname + Querystugradegnmkd; Httppost QueryGradePost = new httppost (newQueryStugradeurl); String viewState = iOutils.getViewState (NewQueryStugradeurl, Cookie, Mainurl + Stunumber); // инкапсулировать список параметров запроса <namevaluePair> QueryGradePair = new ArrayList <mankvaluePair> (); 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)); // QueryGustePair.Add ("ddlxn -namevaluepair (" ddlxq ", xq)); // semester Queryvalepair.add (new basicnamevaluepair (" ddl_kcx "); QueryGradePair.Add (New BasicNameValuePair ("btn_xq", "второй класс")); QueryGradePost.Setheader ("cookie", cookie); QueryGradePost.Setheader («Реферат», MainUrl + Stunumber); Urlencodedformentity entitygrade = new urlencodedformentity (QueryGragrepair); QueryGradePost.Setentity (EntityGrade); Httpresponse responsequerygradepost = client.execute (QueryGradePost); String gradhtml = ioutils.gethtml (responquerygradepost.getentity () .getContent (), "GB2312"); // system.out.println (gradhtml); Document gradedoc = jsoup.parse (gradhtml); Элементы Elegrade = gradedoc.select ("td"); // Проанализировать содержимое HTML <TD> TAG по мере необходимости и вывода для (int i = 0; i <7; i ++) {System.out.println (elegrade.get (i) .text ()); } for (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 (); }} / ** * Запрос метод графика личного класса * * @param xnd * @param xqd * @Throws clientProtoColeXception * @Throws ioException * / public void QueryStucourse (string xnd, string xqd) throws clientProtocolexception, ioException {usbableHttpclient client = httpclient.crate.crate.crate.crate.crate.crate.crate.crate.crate. String newQueryStucurseUrl = QueryStucourseUrl + STUNUMER + "& xm =" + Stuname + QueryStucourseGnmkd; String viewState = iOutils.getViewState (newQueryStucourseUrl, cookie, mainurl + Stunumber); Httppost QueryStucourspost = new httppost (newQueryStucourseUrl); List <mankvaluepair> stucoursepair = new Arraylist <namevaluepair> (); 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 = new urlencodedformentity (stucoursepair); QueryStucourspost.Setentity (EntitySource); QueryStucourspost.setheader ("cookie", cookie); QueryStucourspost.setheader («Реферат», Mainurl + Stunumber); Httpresponse rassestucourse = client.execute (QueryStucourspost); String html = ioutils.gethtml (responsecourse.getentity () .getContent (), "GB2312"); Документ doccourse = jsoup.parse (html); Elements eledic = doccourse.select ("td"); for (int i = 2; i <elecator.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 (); try {jw.login («Вот номер студента», «Вот пароль»); System.out.println ("Тест на оценку запроса -------"); jw.querystugrade ("2015-2016", "1"); // Запрос 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. Datateutils.java
пакет com.ican.yueban.utils; импортировать java.text.parseexception; импортировать java.text.simpledateformat; импортировать java.util.calendar; импортировать java.util.date; Общедоступный класс DateUtils {Private Static String startday = GlobalConstant.Start_Day; // Дата начала частная статическая строка В конце дня окончания = GlobalConstant.end_day; // Дата праздника/*** Получить текущий класс, который класс-это текущее время, только между 8-16 часов, а дефолт-1 и 2 класса в других случаях. * * @return */ public static int getNowcourse () {simpleDateFormat df = new SimpleDateFormat ("HH: MM: SS"); // Установить строку даты даты nowdate = df.format (new Date ()); if (owndate.startswith ("08") || owndate.startswith ("09")) {return 1; // 12 уроков. } else if (owndate.startswith ("10") || owndate.startswith ("11")) {return 2; // 34 уроки и так далее. } else if (owndate.startswith ("12") || owndate.startswith ("13") || owndate.startswith ("14")) {return 3; } else if (owndate.startswith ("15") || owndate.startswith ("16")) {return 4; } else {return 1; }} / ** * Получить, какая неделя текущее время * * @return * / public static int getWeek () {int Days = 0; int ownweek = 0; try {SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); // Установить строку формата даты nowdate = df.format (new Date ()); int nowdaysween = дни между (startday, owndate) + 1; Дни = дни между промежуточными (стартовой день, в конце дня); int x = nowdays Между % 7; if (x == 0) {nowweek = nowdaysween / 7; } else {nowweek = nowdayswesween / 7 + 1; }} catch (parseexception e) {System.out.println («Дата ввода является незаконной, дата анализа не удалась»); e.printstacktrace (); } вернуть nowweek; } / ** * Получить текущее время - день недели * * @return * / public static int getWeekDay () {календарь 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 * @throhs parseexception * / public static int daysweew Между (String startday, String Endday) Throws parseexception {simpledateformat sdf = new SimpleDateFormat ("yyyy-mm-dd"); Календарь cal = calendar.getInstance (); cal.settime (sdf.parse (startday)); давно 1 = cal.getTimeInmillis (); cal.settime (sdf.parse (EndDay)); давно 2 = cal.getTimeInmillis (); long metry_days = (time2 - time1) / (1000 * 3600 * 24); return integer.parseint (string.valueof (meath_days)); }/ ** * Время возвращаемой строки типа системы в Yyyy-MM-DD HH: MM: SS Format * * @return */ public Static String getNowDate () {SimpleDateFormat df = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); // set format format df.format (new Date ();); // set format format df.format (new Date ();); }} 3.globalConstant.java
пакет com.ican.yueban.utils; /*** Все постоянные определения этой системы** @author song kaizong**/public interface globalconstant {public static final String start_day = "2016-02-29"; Public Static Final String end_day = "2016-07-10"; Публичная статическая финальная строка index_url = "http://jwgl2.ujn.edu.cn"; // домашняя страница Jida Academic Affairs System Public Static Final String SecretCode_URL = "http://jwgl2.ujn.edu.cn/checkcode.aspx";////mwgl. "http://jwgl2.ujn.edu.cn/default2.aspx";/// Jida Academic Affairs System Page Public Static String Main_url =" http://jwgl2.ujn.edu.cn/xs_main.aspx?x=";////mide Academan Adade Affies System, Menu Page Public_class Query_clasm_class Query_class Query_class Query_class Query_class. "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=";// Jida query empty classroom link public static final String QUERY_CLASSROOM_GNMKDM = "&gnmkdm=N121611";// Jida query empty classroom gnmkdm public static final String QUERY_STU_COURSE_URL = "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=";// jida Query Query Personal Cranem Link Public Static Final String Query_stu_course_gnmkdm =" & gnmkdm = n121603 "; // jida Quardy Personal Pranery Cumport Cumer "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=";/// jida inquiry personal score Статическая окончательная строка xixiaoque = "1"; // jidaxi Campus logo Public Static State String Dongxiaoqu = "2"; // Jidadong Campus Logo Public Static Final String Zhangqiuxiaoqu = "3"; // Jida Zhangqiu Campus Logo '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 '; // Раздел 3, 4 Public Static State String '' 3 '|' 0 ',' 0 ',' 5 ',' 0 ',' 0 ',' 0 ',' 0 ',' 0 '"; // Раздел 5, 6 Public Static Final String class4 ="' 4 '|' 0 ',' 0 ',' 0 ',' 0 ',' 7 ',' 0, '0', '0', '0', '0', '7', '0', '0' '. '5' | '0', '0', '0', '0', '9', '0', '0', '0' "; // 8, 10 разделов общедоступная статическая конечная строка class6 =" '6' | '0', '0', '0', '0', '0', '0' 11 ',' 0 ',' 0 '' '0,' 0, '0', '11', '0', '0,' 0 ' '7' | '1', '3', '0', '0', '0', '0', '0', '0' "; // 11, 12 разделов общедоступной статической конечной строки class7 =" '7' | '1', '3', '0', '0', '0', '0' ',' 0 '";// 11, 12 разделов. '' 8 '|' 0 ',' 0 ',' 5 ',' 7 ',' 0 ',' 0 ',' 0 ',' 0 '"; // во второй половине дня публичной статической финальной строки class9 ="' 9 '|' 1 ',' 3 ',' 5 ',' 7 ',' 0 '0', '0', '0'; // В дневной публике '10' | '0', '0', '0', '0', '0', '9', '11', '0', '0', '0' '"; // В вечерней публичной статической Static Final String class11 ="' 11 '|' 1 ',' 3 ',' 5 ',' 7 ',' 9 ',' 11 ',' 0 ',' 0, '0' '' // // static station station station static station static static static j 'static static static static static static static static static static static static static static station static' = "btn_xq"; // Semester Оценка общедоступной статической конечной строки btn_xuenian = "btn_xn"; // Оценка академического года "1"; // Неизвестная публичная статическая конечная строка user_state_y = "2"; // Сертифицировано публичной статической конечной строкой Comment_type_newthings = "1"; // Тип комментария 1: Новая публичная статическая конечная строка Comment_type_interest = "2"; // Тип комментариев 2: Заявление о интересах} 4.ioutils.java
пакет com.ican.yueban.utils; Импорт java.awt.rectangle; импорт java.awt.image.bufferedimage; импорт java.io.bytearrayoutputstream; импорт java.io.file; импорт java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import.io.inputem; java.io.outputstream; import 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; import org.apache.http.client.methods.httpget; import org.apache.http.impl.client.closablehtpclient; import org.apache.http.impl.client.httpclient; открытый класс ioutils { / ** * Укажите формат кодирования и преобразуйте входной поток в строку * * @param IS * @return * @Throws ioException * / public static String gethtml (inputStream IS, string encodiing) бросает ioException {byTearrayOutputStream bos = new byTearRayOutputStream (); Byte [] buffer = новый байт [1024]; int len = 0; while ((len = is.read (buffer))! = -1) {bos.write (buffer, 0, len); } is.close (); вернуть новую строку (bos.tobytearray (), кодирование); } / ** * Скачать изображение * * @param urlString * @param filename * @param savepath * @throhs excection * / public static void загрузка (строка urlString, String fileName, String SavePath) Throws Exception {// Construct url url = new url (urlString); // Открыть соединение urlConnection con = url.openconnection (); // Установить тайм -аут запроса на 5S con.setConnecttimeout (5 * 1000); // Входной поток inputstream IS = con.getInputStream (); // 1K Bufpering Boftement Byte [] bs = новый байт [1024]; // Читать длину данных int len; // Файл потока выходного файла sf = new File (savePath); if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = new FileOutputStream (sf.getPath () + "//" + filename); // Начните читать while ((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, int h) throwexcept Imageio.getImagerEadersByformatName ("jpg"); ImageReader Reader = (Imageereader) iterator.next (); InputStream in = new FileInputStream (src); ImageInputStream IIS = ImageIO.CreateImageInputStream (in); reader.setInput (iis, true); ImageReadParam param = reader.getDefultReadParam (); Прямоугольник прямоугольник = новый прямоугольник (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"; try {if (str.equals (new String (str.getbytes (encode), encode))) {string s = encode; возврат S; }} catch (исключение исключения) {} encode = "iso-8859-1"; try {if (str.equals (new String (str.getbytes (encode), encode)))) {string s1 = encode; возврат S1; }} catch (Exception Exception1) {} encode = "UTF-8"; try {if (str.equals (new String (str.getbytes (encode), encode)))) {string s2 = encode; вернуть S2; }} catch (Exception Exception2) {} encode = "gbk"; try {if (str.equals (new String (str.getbytes (encode), encode))) {string s3 = encode; возврат S3; }} catch (Exception Exception3) {} return "Неизвестно"; } / ** * Конвертировать поток ввода в изображение ---》 Получить код проверки * * @param IS * @param filename * @param SavePath * @Throws Exception * / public static void getSecret (inputStream-это string fileName, String SavePath) бросает исключение {// 1K Buffer Baffer Byte [] bs = new byte [1024]; // Длина чтения данных int len; // файл потока выходного файла sf = new File (savePath); if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = new FileOutputStream (sf.getPath () + "//" + filename); // Начните читать while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // Завершить, закройте все ссылки os.close (); is.close (); } / ** * Получить значение __ViewState в скрытом поле * * @param url * @param cookie * @param referer * @return * @throws unsupportedoperationexception * @throws clientProtocolexcept ClientProtocolexception, ioException {useablehttpclient client = httpclients.createdefault (); Httpget getViewState = new httpget (url); getViewState.setheader ("cookie", cookie); getViewState.setheader ("Реферат", Реферат); // Установить информацию о заголовке string s = ioutils.gethtml (client.execute (getViewState) .getEntity () .getContent (), "GB2312"); String viewState = jsoup.parse (s). Select ("input [name = __ viewState]") .val (); client.close (); return ViewState; }} 5. parseutils.java
пакет com.ican.yueban.utils; открытый класс parseutils { / ** * Получить строку, соответствующую сеансу курса * @param course * @return * / public static String parseweek (string course) {string sjd = ""; int how -course = integer.parseint (курс); Switch (NowCourse) {Case 1: SJD = GlobalConstant.class1; перерыв; Случай 2: sjd = global constant.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 = global constant.class1; перерыв; } вернуть SJD; }}Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.