Este artigo compartilha informações sobre o login de simulação Java nos assuntos acadêmicos de Zhengfang para capturar resultados, horários de classe, salas de aula vazias etc. para sua referência. O conteúdo específico é o seguinte
1.jwgl.java
pacote com.ican.yueban.jwgl; importar java.io.ioException; importar java.io.inputStream; importar java.util.ArrayList; importar java.util.list; importar java.util.scanner; importar org.apache.http.httproponse; importar org.apache.http.nameValuepair; importar org.apache.http.client.clientprotocolexception; importação org.apache.http.client.entity.urlincodedEdForMatority; org.apache.http.client.methods.closablehttpResponse; importar org.apache.http.client.methods.httpget; importar org.apache.http.client.methods.httppost; importância org.apache.http.implient.methods.httppot; importância org.apache.http.implient.methods.httppot; importância org.apache.http.implient.methods.httppost; importância org.apache.http.implient.methods.httppot; importância 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.select.Elements; importar com.ican.yueban.utils.dateutils; importar com.ican.yueban.utils.globalConstant; importação com.ican.yueban.utils.ioutils; import com.ican.yueban.utils.parseutils; classe pública JWGL {private static string atunumber = ""; String estática privada atuname = ""; biscoito estático privado biscoito = ""; private string indexurl = globalconstant.index_url; private string secretCodeurl = globalconstant.secretcode_url; private string loginurl = globalconstant.login_url; String privada mainurl = globalconstant.main_url; Private String Queryclassroomurl = 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; String privada querystucourseurl = globalconstant.query_stu_course_url; private string querystucoursegnmkd = globalconstant.query_stu_course_gnmkdm; String privada xixiaoqu = globalconstant.xixiaoqu; private string identityStU = globalConstant.Identity_STU; / ** * FUNÇÃO DE LOGIN * * @PARAM DURNOMUME * @PARAM Senha * @return * @Throws Exception * @THOWS UnsupportEdOperationException */ public boolean Login (String durNumber, String senha) lança UnupportEdOperationException, exceção {this.stUnumber = Runumumber; // obtenha o código de verificação httpget secretCodeGet = new httpget (secretCodeurl); ClientHttpClient client = httpclients.createFault (); ClosableHttpResponse ResponseSecret = client.execute (secretCodeGet); // Obtenha o cookie de retorno = ResponseSecret.getFirStheader ("Set-Cookie"). GetValue (); String ViewState = ioutils.getViewState (indexurl, "", ""); // Faça o download do código de verificação para o disco C ioutils.getSecret (ResponseSecret.getEntity (). GetContent (), "secretCode.png", "c: //"); Scanner sc = new scanner (system.in); System.out.println ("Por favor, digite o código de verificação:"); // preencheu manualmente o valor do código de verificação que você acabou de obter a string secreta = sc.Next (). TRIM (); Httpppost loginpost = new httppost (loginurl); // Crie uma solicitação de loginpost loginpost.setheader ("cookie", cookie); // traga a primeira lista de cookies solicitada <nameValuepair> nameValuepairLogin = novo Arraylist <nameValuePair> () // acabanear BasicNameValuepair ("__ ViewState", ViewState)); // Ocultar valor de formulário NameValuepairLogin .Add (new BasicNameValuepair ("TxTUSERNAME", TOMPROMEVER); // Student ID NameValuepairLogin.ADDDDEVALEVALUEPAIR ("TextBox2", senha); BasicNameValuepair ("txtSecretCode", segredo)); // Código de verificação nameValuepairLogin.add (new BasicNameValuepair ("RadiobuttonList1", IdentitySTU); // Identity, default anual namevaluePairLogin.add (New BasicNuVair ("Botnowlowt11" Butterny); nameValuepairLogin.add (new BasicNameValuepair ("Language", ""); nameValuepairLogin.add (new BasicNameValuepair ("hidpdrs", ""); nameValuepairLogin.add (new BasicNameValuepair ("hidsc", ""); Entidade de formação urlecodedada = nova formação de urle -codificada (NameValuepairlogin, "GB2312"); LoginPost.Setentity (entidade); HTTPRESPOnsion ResponsElogin = client.execute (loginpost); // client1.close (); // Etapa 3: Determine se os dados enviados são bem -sucedidos e retornem 302 com sucesso se (ResponsElogin.getStatusline (). GetStatuscode () == 302) {// Se o envio for bem -sucedido, solicite a página principal redirecionada com um cookie e obtenha o nome do aluno httpget mainget = novo htttpget (mainurlumumer); Mainget.setheader ("Cookie", biscoito); Mainget.setheader ("referente", loginurl); HTTPRESPOnsion ResponsemAin = client.execute (mainget); InputStream is = RespoMemAin.getEntity (). GetContent (); String html = ""; tente {html = ioutils.gethtml (IS, "GB2312"); } catch (Exceção e) {System.out.println ("Parse html falhou!"); E.PrintStackTrace (); } atuname = jsoup.parse (html) .getElementById ("xhxm"). text (); System.out.println ("Login com sucesso! Bem -vindo:" + atordoamento); client.close (); retornar true; } else {System.out.println ("Login falhou!"); client.close (); retornar falso; }} / ** * Consulta a sala de aula vazia * * @THOWSOWSECTION * * @THOWSOWS Exceção * / public void queryclassroom (string xiaoqu, string xqj, string sjd) lança exceção {closablehttpclient client = httpclients.createFault (); String newQueryClassRommurl = Queryclassroomurl + impressionante + "& xm =" + atordoamento + queryclassroomgnmkdm; // url para splicing solicita parsajd = parseutils.parseweek (sjd); // parse a cadeia correspondente à atual seção/ string agora; Ioutils.getViewState (newQueryClassRommurl, cookie, mainurl + atordoer); // encapsula a consulta Lista de parâmetros de solicitação de sala de aula vazia <nameValuepair> queryclassroomPair = new ArrayList <NameValuepair> (); queryclassroompair.add (new BasicNameValuepair ("__ EventTarget", "")); queryclassroompair.add (new BasicNameValuepair ("__ EventArgument", "")); QueryclassroomPair .Add (New BasicNameValuepair ("__ ViewState", ViewState)); QueryclassroomPair.add (novo BasicNameValuepair ("Xiaoq", Xiaoqu)); // Tipo de campus, padrão para o West Campus QueryclassroomPair.add (new BasicNameValuePair ("JSLB", ""); // Categoria da sala de aula, default para vazio, QueryClousPair.Dair.D); "0"));// The minimum number of seats, default to 0 queryClassroomPair.add(new BasicNameValuePair("max_zws", ""));// The maximum number of seats, default to empty queryClassroomPair.add(new BasicNameValuePair("ddlKsz", nowWeek));// The first week, default to current week QueryclassroomPair.add (new BasicNameValuepair ("ddljsz", hoje em dia)); // termina a semana, padrão para a semana atual QueryclassroomPair.add (novo BasicNameValuepair ("xQj", xqj)); BasicNameValuepair ("ddldsz", "")); // Para semanas ímpares e duplas, padrão para QueryclassroomPair.add (new BasicNameValuepair ("sjd", parSesjd); // que seção está em que a sala de sala de sala "da seção" e o sloatom); 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 = nova formação de urlencadeiras (queryclassroompair); Httppost QueryclassroomPost = novo httppost (newQueryclassRommurl); // newQueryclassRommurl Exemplo: http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=20121214104&xm=xxx&gnmkdm=n121611 QueryclasroomPost.Setentity (EntityClassroom); queryclassroompost.setheader ("referente", mainurl + stunumber); // Defina informações do cabeçalho queryclassroompost.setheader ("cookie", biscoito); HttpResponse responseClassroom = client.execute (Queryclassroompost); InputStream é = Responseclassroom.getEntity (). GetContent (); String html = ioutils.gethtml (IS, "GB2312"); Documento doc = jsoup.parse (html); Elementos eleclassroom = doc.select ("td"); Elementos eleinfo = doc.select ("#lblbt"); System.out.println (eleinfo.get (0) .Text ()); for (int i = 0; i <eleclassroom.size (); i ++) {// imprima apenas o nome da sala de aula se (i % 8 == 1) {System.out.println (eleclassroom.get (i) .text ()); }} client.close (); }/ ** * Sobrecarregar o método de sala de aula vazio, o tempo de padrão e o método de consulta sem parâmetros para sessões do curso * * @THOWSoException * @Throws ClientProtocolexception */ public void queryclassroom () lança o clientprotocolexception, ioexception, exceção {string weekday = dateUtils.getwayday () " Dateutils.getNowCourse () + ""; // Obtenha a hora atual que lição é nova jwgl (). Queryclassroom (Xixiaoqu, dia da semana, SDJ); } / ** * Método de pontuação pessoal da consulta * * @THOWSTOWSPROTOCOLEXCECCECTION * @THOWSOWSception * / public void querystugrade (string xn, string xq) lança clientprotocolexception, iooxception {closablehttpclient client = htttpclients.createFault (); String newQueryStUGradeurl = querystugradeurl + atordoumber + "& xm =" + atordoa + querystugradegnmkd; HttpPost querygradEposTost = new httppost (newQueryStugradeurl); String ViewState = ioutils.getViewState (newQueryStraderl, cookie, mainurl + atordoer); // encapsula a lista de parâmetros de solicitação <NameValuepair> queryGregGeDepair = new ArrayList <NameValuepair> (); querygimapair.add (new BasicNameValuepair ("__ EventTarget", ""); querygimapair.add (new BasicNameValuepair ("__ EventArgument", ""); QueryGradEpair.add (novo BasicNameValuepair ("__ ViewState", ViewState)); querygimapair.add (new BasicNameValuepair ("Hidlanguage", ""); querygimapair.add (new BasicNameValuepair ("ddlxn", xn)); // ano escolar QueryGradEpair.add (new BasicNameValuepair ("ddlxq", xq); // semestre querygradpair.add (new BasicNameValuePair ("ddl_kl_kcx" "; querygimapair.add (new BasicNameValuepair ("btn_xq", "Segunda Grau")); querygradEpost.setheader ("cookie", biscoito); QueryGradEpost.Setheader ("Refereiro", Mainurl + Stunumber); Entidade de formação de urlencadeamento de urleiridade = nova formação de Urlencoded (QueryGreGradEpair); QueryGradEpost.Setentity (Entitygrade); HTTPRESPOnsion ResponseQuerGradEpost = client.execute (QueryGradEpost); String gravehtml = ioutils.gethtml (ResponQueryGerGradEPost.getEntity () .getContent (), "gb2312"); // system.out.println (gravehtml); Documento gradedoc = jsoup.parse (gravehtml); Elementos elegrade = gradedoc.select ("td"); // analisa o conteúdo de tag html <td> conforme necessário e saída para (int i = 0; i <7; i ++) {System.out.println (elegrade.get (i) .text ()); } para (int i = 11; i <LeGrade.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 (); }} / * * String newQueryStucourseUrl = QueryStucourseUrl + atordoador + "& xm =" + atuname + querystucoursegnmkd; String ViewState = ioutils.getViewState (newQueryStucourseurl, cookie, mainurl + atordoer); Httppost querystucoursepost = novo httppost (newQueryStucourseUrl); Lista <NameValuepair> stucoursepair = new ArrayList <NameValuepair> (); sTUCoursePair.add (novo BasicNameValuepair ("__ EventTarget", "XQD")); sTUCoursePair.add (novo BasicNameValuepair ("__ EventArgument", ""); sTUCoursePair.add (novo BasicNameValuepair ("__ ViewState", ViewState)); sTUCoursePair.add (new BasicNameValuepair ("XND", XND)); sTUCoursePair.add (new BasicNameValuepair ("xqd", xqd)); UrlencodedFormentity entitySource = New UrlencodedFormentity (StucoursePair); QueryStucoursePost.Setentity (EntitySource); querystucoursepost.setheader ("cookie", biscoito); querystucoursepost.setheader ("referente", mainurl + stunumber); HttpResponse Responsestucourse = client.execute (QueryScUsourPost); String html = ioutils.gethtml (Responsestucourse.getEntity () .getContent (), "gb2312"); Documento doccourse = jsoup.parse (html); Elementos elecourse = doccourse.Select ("TD"); for (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 (); tente {jw.login ("Aqui está o número do aluno", "aqui está a senha"); System.out.println ("teste de pontuação de consulta -------"); JW.QueryStUgrade ("2015-2016", "1"); // Consulta West Campus, segunda -feira, Seção 12 Teste de sala de aula vazia. // jw.QueryClassroom ("1", "1", "2"); System.out.println ("Teste de sala de aula vazio de consulta ------"); JW.QueryClassroom (); System.out.println ("Teste de programação de aula pessoal de consulta --------"); JW.Querystucourse ("2014-2015", "1"); } catch (clientprotocolexception e) {e.printStackTrace (); } catch (ioexception e) {e.printStackTrace (); } catch (Exceção e) {e.printStackTrace (); } // QQ: 451209214}} 2.Dateutils.java
pacote com.ican.yueban.utils; importar java.text.parseException; importar java.text.simpledateFormat; importar java.util.calendar; importar java.util.date; classe pública dateUtils {private static string stringday = globalconstant.start_day; // Data de início da sequência estática privada EndDay = globalConstant.end_day; // Data de férias/*** Obtenha a classe atual que é a hora atual, apenas entre 8 e 16 horas e o padrão é de 1 e 2 em outros tempos. * * @return */ public static int getNowCourse () {SimpleDateFormat df = new SimpleDateFormat ("hh: mm: ss"); // Defina a string de data de data agoradate = df.format (new Date ()); if (agoradate.startswith ("08") || agoradate.startswith ("09")) {return 1; // 12 lições. } else if (agoradate.startswith ("10") || agoradate.startswith ("11")) {return 2; // 34 lições e assim por diante. } else if (agoradate.startswith ("12") || agoradate.startswith ("13") || agoradate.startswith ("14")) {return 3; } else if (agoradate.startswith ("15") || agoradate.startswith ("16")) {return 4; } else {return 1; }} / ** * Obtenha em que semana a hora atual é * * @return * / public static int getWeek () {int Days = 0; int atualmente = 0; tente {simledateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); // Defina o formato de data string nowDate = df.format (new Date ()); int angowardaysbetween = DaysBetween (dia de início, NowDate) + 1; dias = dias entre (dia de início, dia final); int x = hoje em diante entre % 7; if (x == 0) {agoraweek = agora em dia / 7; } else {nowweek = hoje em dia / 7 + 1; }} catch (parseException e) {System.out.println ("A data de entrada é ilegal, a data de análise falhou"); E.PrintStackTrace (); } retornar hoje em dia; } / ** * Obtenha a hora atual é o dia da semana * * @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; } / ** * Calcule o número de dias entre duas datas de tipo de string * * @param startday * @param endday * @return * @throws parseException * / public static int Daysbetween (string startday, string endday) lança parseException {simledateFormat sdf = new simpledateformat ("yyyy-mmd"); Calendário cal = calendar.getInstance (); cal.setTime (sdf.parse (dia inicial)); longo tempo1 = cal.getTimeInmillis (); cal.setTime (sdf.parse (fim de dia)); longo tempo2 = cal.getTimeInmillis (); longo entre_days = (TIME2 - TIME1) / (1000 * 3600 * 24); return integer.parseint (string.valueof (entre_days)); }/ ** * Retorne o tempo do sistema de string do sistema em yyyy-mm-dd hh: mm: formato ss * * @return */ public static string getNowdate () {simpledEformat df = new SimpleDateFormat ("yyyyy-mm-dd hh: mm: ss (ss); // set the format Return df. }} 3.GlobalConstant.java
pacote com.ican.yueban.utils; /*** Todas as definições constantes deste sistema** @Author Song kaizong**/interface pública globalconstant {public static final string start_day = "2016-02-29"; public static final string end_day = "2016-07-10"; public static final string index_url = "http://jwgl2.ujn.edu.cn"; // página inicial do sistema de assuntos acadêmicos jida public static final string secretcode_url = "http://jwgl2.ujn.edu.cn/checkcode.aspx"; "http://jwgl2.ujn.edu.cn/default2.aspx"// jida system de assuntos acadêmicos Página de login public static final string main_url =" http://jwgl2.ujn.edu.cn/xs_main.aspx? = "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=" ;// jida consulta em sala de aula vazia link public static final string Query_classroom_gnmkdm =" & gnmkdm = n121611 "// jida query classom gnmkd gnmkd gnmkd gnmkdm = n121611"; "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=" ;// jida consulta de classes pessoal link public static final string Query_stu_course_gnmkdm =" & gnmkdm = n121603 "; // jyy inquérmy shainty shainty shortynmynmy shork shork shortynmynmyn e gnmkdm = n121603"; // jda inquinty shaindy shiplmymy "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=" ;// jida inquérito link de pontuação pessoal public static final string Query_stu_grade_gnmkdm =" & gnmkdm = n121605 "; // jida inquiery swore Identidade: Student Public Static Final String xixiaoqu = "1"; // logotipo do campus jidaxi Public Static Final String Dongxiaoqu = "2"; // logotipo do campus jidadong public estático final String zhangqiuxiaoqu = "3"; // jida zhangqiu campus campus lotic stick final string final string final Class1 = "'1' | '1', '0', '0', '0', '0', '0', '0'"; // 1, 2 public static final String Class2 = "'2' | "'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 final String CLASS5 = "'5' | '0', '0', '0', '0', '9', '0', '0', '0'"; // 8, 10 seções public static final string class6 = "'6' | "'7' | '1', '3', '0', '0', '0', '0', '0', '0'"; // 11, 12 Seções Public Static Final String Class7 = "'' '' '' 1 ',' 3 ',' 0 ',' 0 ',' '0,' 0 ',' 0 ',' 0 ', // 11, 12,' '' ',' '' 0, '0', '0', '3,' 3 ',' 12, '', '' ',' 0, '0', '0', '3', '11, 11,' '', '' ',' 0 '', '0', '3,' 3 ',' 12, '', '' '', '0', '0' ',' 0 '; "'8' | '0', '0', '5', '7', '0', '0', '0', '0'"; // Na tarde, public estático final String Class9 = "'9' | '1', '3', '5', '7', '0' '' 0 ',' 0 ',' 0 ''; "'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'";// Full-day public static final String BTN_XUEQI = "btn_xq"; // pontuações do semestre public estática final string final btn_xuenian = "btn_xn"; // pontuações do ano acadêmico Public estático final string btn_linian = "btn_zcj"; // pontuações anteriores da universidade final da unidade. "1"; // public estático não certificado Final String user_state_y = "2"; // certificado por public static final string comentário_type_newthings = "1"; // Comentário Tipo 1: nova public static final String Comment_type_interest = "2"; // Comentário Tipo 2: Atividade de juros}} 4.ioutils.java
pacote com.ican.yueban.utils; importar java.awt.rectangle; importar java.awt.image.bufferedImage; importar java.io.byteArrayoutputStream; importar java.io.file; importar java.io.fileInputStream; importar java.io.fileoutstream; importStrA.io.ioException; importação; importação; importação; importação java.fileoutputream; importStrA.io.ioException; importação; importação; importação; importestream; import java.io.fileoutstream; importStrA.io.ioException; importação; importação; importação; importestream; importar java.io.fileoutstream; importStrA.io.ioException; java.io.OutputStream; importar java.net.url; importar java.net.urlConnection; importar java.util.iterator; importar javax.imageio.imageio; importar javax.imageio.imagereadparam; importar javax.imageio.imagereader; importar javax.imageio.stream.imageInputStream; importar org.apache.http.client.clientProtocolexception; importar org.apache.http.client.methods.httpget; importar org.apache.http.impl.client.clienthttpclient; importância; Public Classe ioutils { / ** * Especifique o formato de codificação e converta o fluxo de entrada em uma string * * @param IS * @return * @throws ioexception * / public static string gethtml (InputStream IS, string coding) lança IoException (ByTeArARaRaRaRayStream; byte [] buffer = novo byte [1024]; int len = 0; while ((len = is.read (buffer))! = -1) {bos.write (buffer, 0, len); } is.close (); return new string (bos.tobytearray (), codificação); } / ** * Download Imagem * * @param urlString * @param filename * @param salvath * @throws exceção * / public static void Download (string urlstring, string filename, string savepath) lança exceção {// constructe URL URL = new Url (urlstring); // Abra a conexão urlConnection con = url.openconnection (); // Defina o tempo limite da solicitação para 5s con.setConnectTimeout (5 * 1000); // fluxo de entrada inputStream is = con.getInputStream (); // 1K buffer de buffer de dados [] bs = novo byte [1024]; // leia o comprimento dos dados int len; // FILE DE OUTRAÇÃO FILO DE PROGRAMENTO DE FLREGO DO if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = new FileOutputStream (sf.getPath () + "//" + nome do arquivo); // Comece a ler while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // Complete, feche todos os links os.close (); is.close (); } / ** * Classe de ferramenta de corte de imagem * * @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 h) throws ioException {itator Imageio.getImageReadesByFormatName ("jpg"); ImageReader Reader = (ImageReader) iterator.Next (); InputStream in = new FileInputStream (SRC); ImageInputStream iis = imageio.createImageInputStream (in); leitor.setInput (iis, true); ImageReadParam param = reader.getDefaultreadParam (); Retângulo ret = novo retângulo (x, y, w, h); param.SetSourCeregion (Rect); BufferImage bi = leitor.read (0, param); Imageio.write (bi, "jpg", novo arquivo (dest)); in.Close (); } / ** * Juiz de codificação de caracteres set * * @param str * @return * / public static string getEncoding (string str) {string code = "gb2312"; tente {if (str.equals (new string (str.getBytes (codificam), codificam))) {string s = code; retorno s; }} catch (exceção da exceção) {} code = "ISO-8859-1"; tente {if (str.equals (new string (str.getBytes (codificam), codificam)))) {string s1 = code; retornar S1; }} catch (Exceção de exceção1) {} code = "utf-8"; tente {if (str.equals (new string (str.getBytes (codificam), codificam)))) {string s2 = code; retornar S2; }} catch (Exception Exception2) {} code = "gbk"; tente {if (str.equals (new string (str.getBytes (codificam), codificam))) {string s3 = code; retornar S3; }} catch (exceção da exceção 3) {} retornar "desconhecido"; } /** * Convert the input stream into a picture---》 Get the verification code* * @param is * @param filename * @param savePath * @throws Exception */ public static void getSecret(InputStream is, String filename, String savePath) throws Exception { // 1K data buffer byte[] bs = new byte[1024]; // o comprimento de dados de leitura int len; // o arquivo de fluxo de arquivo de saída SF = new File (SavePath); if (! sf.exists ()) {sf.mkdirs (); } OutputStream OS = new FileOutputStream (sf.getPath () + "//" + nome do arquivo); // Comece a ler while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // termina, feche todos os links os.close (); is.close (); } / ** * Obtenha o valor __ViewState do campo oculto * * @param url * @param cookie * @param referente * @return * @THOWS UnsupportEdOperationException * @THOWSTROTOTOTOColexception * @ThrowSception * / public static strat getViewState (string UrlCexception, strings). IoException {ClosableHttpClient client = httpClients.createFault (); Httpget getViewState = new httpget (url); getViewState.Setheader ("Cookie", Cookie); getViewState.setheader ("Referente", referente); // Defina informações de informações do cabeçalho String s = ioutils.gethtml (client.execute (getViewState) .getEntity () .getContent (), "gb2312"); String viewState = jsoup.parse (s) .Select ("input [nome = __ viewState]") .val (); client.close (); retornar viewstate; }} 5. Parseutils.Java
pacote com.ican.yueban.utils; classe pública parseutils { / ** * Obtenha a string correspondente à sessão do curso * @param curso * @return * / public static string parseweek (string curso) {string sjd = ""; int nowcourse = Integer.parseint (curso); switch (nowcourse) {case 1: sjd = globalconstant.class1; quebrar; Caso 2: SJD = globalconstant.class2; quebrar; Caso 3: SJD = globalconstant.class3; quebrar; Caso 4: SJD = globalconstant.class4; quebrar; Caso 5: SJD = globalconstant.class5; quebrar; Caso 6: SJD = globalconstant.class6; quebrar; Caso 7: SJD = globalconstant.class7; quebrar; Caso 8: SJD = globalConstant.class8; quebrar; Caso 9: SJD = globalconstant.class9; quebrar; Caso 10: SJD = globalconstant.class10; quebrar; Caso 11: SJD = globalconstant.class11; quebrar; padrão: sjd = globalconstant.class1; quebrar; } retornar SJD; }}O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.