이 기사는 Jhengfang Academic Affairs에 Java Simulation 로그인에 대한 정보를 공유하여 참조를 위해 결과, 수업 일정, 빈 교실 등을 포착합니다. 특정 내용은 다음과 같습니다
1.jwgl.java
패키지 com.ican.yueban.jwgl; import 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.closeablehtttpresponse; import org.apache.http.client.methods.httpget; import org.apache.http.client.methods.httppost; import org.apache.http.impl.client.closablehtpclient; 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; org.jsop. import com.ican.yueban.utils.dateutils; import com.ican.yueban.utils.globalconstant; import com.ican.yueban.utils.ioutils; import com.ican.yueban.utils.parseutils; 공개 클래스 jwgl {private static string stunumber = ""; 개인 정적 문자열 stuname = ""; 개인 정적 문자열 쿠키 = ""; 개인 문자열 indexurl = globalConstant.index_url; 개인 문자열 SecretCodeUrl = GlobalConstant.secretcode_url; 개인 문자열 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; 개인 문자열 querystucourseurl = globalConstant.query_stu_course_url; 개인 문자열 QueryTucoursegnmkd = globalConstant.query_stu_course_gnmkdm; 개인 문자열 xixiaoqu = GlobalConstant.xixiaoqu; 개인 문자열 IdentityStu = GlobalConstant.Inderity_stu; / ** * 로그인 함수 * * @param stunumber * @param password * @return * @throws Exception * @throws UnsupportedOperationException */ public boolean login (String Stunumber, String Password)이 UnsupportedOperationException, 예외 {this.stunumber = stunumber; // 검증 코드 가져 오기 httpget incredcodeget = new httpget (SecretCodeUrl); closeablehttpclient client = httpclients.createdefault (); closeblehttttpresponse responseecret = client.execute (SecretCodeGet); // 반환 된 쿠키 쿠키를 가져옵니다. responseesCret.getFirsTheader ( "set-cookie"). getValue (); String viewstate = ioutils.getViewState (indexUrl, "", ""); // 검증 코드를 c 디스크 ioutils.getSecret (responseesecret.getentity (). getContent (), "secretcode.png", "c : //")로 다운로드합니다. 스캐너 sc = 새 스캐너 (System.In); System.out.println ( "확인 코드를 입력하십시오 :"); // 방금 얻은 검증 코드의 값을 수동으로 채우십시오. httppost loginpost = new httppost (loginurl); // loginpost 요청 loginpost.setheader ( "쿠키", 쿠키); // 첫 번째 요청 된 쿠키 목록 <namevaluepair> namevaluepairlogin = new arraylepair <namevaluepair> (); .add (new BasicNameValuePair ( "__ viewstate", viewstate)); // 양식 값 숨기기 이름 ValuePairLogin .add (new BasicNameValuePair ( "txtUsername", stunumber)); // 학생 ID NamevaluePairLogin.add (new BasicNamevaluePair ( "textbox2"); // namevaluepairlogin.add (new basicnamevaluepair ( "txtsecretcode", secret)); // verification code namevaluepairlogin.add (new basicnamevaluepair ( "radiobuttonlist1", everitystu)); // everity, default student namevaluepairlogin. BASICNAMEVALUEPAIR ( "button1", ""); namevaluepairlogin.add (new BasicNameValuePair ( "lblanguage", ""); namevaluepairlogin.add (New BasicNameValuePair ( "hidpdrs", ""); namevaluepairlogin.add (new BasicNameValuePair ( "hidsc", ""); urlencodedformentity entity = New Urlencoded -Unformentity (namevaluepairlogin, "gb2312"); LoginPost.Setentity (엔티티); httpresponse responelogin = client.execute (loginpost); // client1.close (); // 3 단계 : 제출 된 데이터가 성공했는지 여부를 결정하고 302 성공적으로 반환합니다. Mainget.setheader ( "쿠키", 쿠키); Mainget.setheader ( "Certure", LoginUrl); httpresponse responseemain = client.execute (mainget); inputStream은 = responseMain.getEntity (). getContent (); 문자열 html = ""; try {html = ioutils.gethtml (is, "gb2312"); } catch (예외 e) {System.out.println ( "Parse Html 실패!"); e.printstacktrace (); } stuname = jsoup.parse (html) .getElementById ( "xhxm"). text (); System.out.println ( "성공적으로 로그인! 환영 :" + stuname); client.close (); 진실을 반환하십시오. } else {System.out.println ( "로그인 실패!"); client.close (); 거짓을 반환합니다. }} / ** * 빈 교실 쿼리 * * @throws Exception * * @throws 예외 * / public void queryClassroom (String Xiaoqu, String XQJ, String SJD) 예외 {closeablehttpclient client = httpclients.createdefault (); String newQueryClassRommurl = QueryClassRoomurl + stunumber + "& xm =" + stuname + stuname + QueryClassroomgnmkdm ;/ url 요청 문자열 parsesjd = parseutils.parseweek (sjd); // 현재 섹션에 해당하는 문자열을 구식 string = dateutils.getweek () + " +"; ioutils.getViewState (NewQueryClassRommurl, 쿠키, MainUrl + Stunumber); // 캡슐화 쿼리 빈 교실 요청 매개 변수 목록 <SameValuePair> QueryClass roompair = new ArrayList <NamesValuePair> (); QueryClassroompair.add (New BasicNameValuePair ( "__ EventTarget", ""); QueryClassroompair.add (New BasicNameValuePair ( "__ EventArgument", ""); QueryClassroomPair .add (New BasicNameValuePair ( "__ viewstate", viewstate)); queryclassroompair.add (새로운 BasicNameValuePair ( "Xiaoq", Xiaoqu)); // 캠퍼스 유형, 서쪽 캠퍼스 QueryClassroompair.add의 기본값 (새로운 BasicNameValuePair ( "jslb", ""); // Classroom Category, Default to empty queryclass.add BASICNAMEVALUEPAIR ( "Min_ZWS", "0")); // 최소 좌석 수, 기본값 0 QueryClassroompair.add (new BasicNameValuePair ( "max_zws", ""); // 비어있는 QueryClassRoomPair.Add (new QuerynameValuePAir)의 최대 좌석 수 nowweek)); // 첫 주, 기본적으로 현재 주에 기본값 QueryClassroompair.add (new BasicNameValuePair ( "ddljsz", nowweek)); // 주말에 기본값 QueryClassroompair.add (new BasicNameValuePair ( "Xqj", XQJ); queryclassroompair.add (new BasicNameValuePair ( "ddldsz", ""); // 홀수 및 이중 주, QueryClassroompair.add의 기본값 (new BasicNameValuePair ( "sjd", parsesjd)); // queryclassroompair.add (new basicnamevaluepair.Air what QueryNameValuePAir ( "QuallyNameValuePAir (" ". 쿼리 "); 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 ( "Cereper", MainUrl + Stunumber); // 헤더 정보 QueryClassroompost.setheader ( "쿠키", 쿠키); httpresponse responseclassroom = client.execute (QueryClassroompost); inputStream은 = responseclassroom.getentity (). getContent (); 문자열 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 <eleclassroom.size (); i ++) {// (i % 8 == 1) {system.out.println (eleclassroom.get (i) .text ()); }} client.close (); }/ ** * 과부하 쿼리 빈 교실 방법, 기본 시간 및 코스 세션에 대한 매개 변수가없는 쿼리 메소드 * * @throws ioexception * @throws clientProtoColexception */ public void queryClassroom () 클라이언트 프로 토포 렉스, 예외, {string weekday = dateUtils.getWeekday () + "; dateUtils.getNowCourse () + ""; // 현재 시간을 얻습니다. } / ** * 개인 점수 쿼리 개인 점수 방법 * * @throws ClientProtoColexception * @Throws IOException * / public void QueryStugRade (String Xn, String XQ)는 ClientProtoColexception, ioException {CloseableHttPclient Client = httpClients.createdEfault (); 문자열 NewQueryStugRadeUrl = QueryStugRadeUrl + Stunumber + "& XM =" + Stuname + QueryStugradegnmkd; httppost querygradepost = new httppost (NewQueryStugradeurl); String viewstate = ioutils.getViewState (NewQueryStugradeurl, 쿠키, MainUrl + Stunumber); // 캡슐화 요청 매개 변수 목록 <NamesValuePair> QueryGradePair = new ArrayList <NamesValuePair> (); 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)); // Sems QuerygradePair.add (New BasicNameValuePair ( "BTN_XQ", "2 학년")); Querygradepost.Setheader ( "쿠키", 쿠키); QuerygradePost.SetHeader ( "Referer", MainUrl + Stunumber); urlencodedformentity entitygrade = 새로운 urlencodedformentity (Querygradepair); QueryGradePost.Setentity (EntityGrade); httpresponse responsequerygradepost = client.execute (Querygradepost); String gradehtml = ioutils.gethtml (responquerygradepost.getentity () .getContent (), "gb2312"); // system.out.println (gradehtml); 문서 GradeDoc = jsoup.parse (gradehtml); 요소 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 querytucourse (String Xnd, String XQD) throws clientProtoColexception, ioException {CloseBlients.createDefault (); 문자열 NewQueryTucourseUrl = QueryTucourseUrl + Stunumber + "& xm =" + Stuname + QueryTucoursegnmkd; String viewstate = ioutils.getViewState (NewQueryTucourseurl, 쿠키, MainUrl + Stunumber); httppost querytucoursepost = new httppost (newQueryTucourseUrl); 목록 <NamesValuePair> stucoursePair = new ArrayList <NamesValuePair> (); 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); QueryTucoursePost.Setentity (EntitySource); QueryTucoursePost.SetHeader ( "쿠키", 쿠키); QueryTucoursePost.SetHeader ( "Referer", MainUrl + Stunumber); httpresponse responseStucourse = client.execute (QueryTucoursePost); 문자열 html = ioutils.gethtml (responseStucourse.getEntity () .getContent (), "gb2312"); 문서 doccourse = jsoup.parse (html); 요소 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 (); {jw.login ( "여기 학생 번호가 있습니다", "여기에 비밀번호가 있습니다"); System.out.println ( "쿼리 점수 테스트 ------"); JW.QueryStugrade ( "2015-2016", "1"); // 쿼리 웨스트 캠퍼스, 월요일, 섹션 12 빈 교실 테스트. // jw.queryclassroom ( "1", "1", "2"); System.out.println ( "쿼리 빈 교실 테스트 ------"); JW.QueryClassroom (); System.out.println ( "개인 수업 일정 테스트 -------"); jw.Querytucource ( "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; import java.text.parseexception; import java.text.simpledateformat; import java.util.calendar; import java.util.date; 공개 클래스 dateUtils {private static startday = globalconstant.start_day; // 시작 날짜 개인 정적 문자열 endday = 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 (nowdate.startswith ( "08") || nowdate.startswith ( "09")) {return 1; // 12 수업. } else if (nowdate.startswith ( "10") || nowdate.startswith ( "11")) {return 2; // 34 수업 등. } 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; }} / ** * 현재 시간은 현재 시간이 * * @return * / public static int getweek () {int days = 0; int nowweek = 0; try {simpledateformat df = new simpledateformat ( "yyyy-mm-dd"); // 날짜 형식을 설정하십시오. int nowdaysbetween = daysbetween (startday, nowdate) + 1; 날 = 중간 (시작일, 종말); int x = nowdaysbetwnee % 7; if (x == 0) {nowweek = nowdaysbetween / 7; } else {nowweek = nowdaysbetween / 7 + 1; }} catch (parseException e) {System.out.println ( "입력 날짜는 불법이며 구문 분석 날짜가 실패했습니다"); e.printstacktrace (); } 지금 주중 반환; } / ** * 현재 시간은 요일입니다 * * @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 startday, String endday) parseexception {simpledateformat sdf = new simpledateformat ( "yyyy-mm-dd"); Calendar Cal = Calendar.getInstance (); cal.settime (sdf.parse (startday)); 긴 타임 1 = cal.getTimeInmillis (); cal.settime (sdf.parse (endday)); 긴 타임 2 = cal.gettimeinmillis (); 긴 사이의 _days = (time2 -time1) / (1000 * 3600 * 24); return integer.parseint (string.valueof (사이)); }/ ** * yyyy-mm-dd hh : mm : ss 형식에서의 리턴 문자열 유형 시스템 시간 : ss 형식 * * @return */ public static string getNowdate () {simpledateformat df = new SimplededateFormat ( "yyyy-mm-dd hh : mm : ss"); // 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"; 공개 정적 최종 문자열 end_day = "2016-07-10"; 공개 정적 최종 문자열 index_url = "http://jwgl2.ujn.edu.cn"; // jida 학술 업무 시스템의 홈 페이지 공개 정적 최종 문자열 secretcode_url = "http://jwgl2.ujn.edu.cn/checkcode.aspx" ;// VERICATION CODE PAURPLATIC 최종 문자열 eUNTATIN_URL = "http://jwgl2.ujn.edu.cn/default2.aspx" ;// Jida Academic Affairs System Login Page Public String main_url ="http://jwgl2.ujn.edu.cn/xs_main.aspx?xh=" ;// jida home home home page home pagic the string qualsorl. "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=" ;// jida query quemy query query query query query query quemp public static final string query_classroom_gnmkdm ="& gnmkdm = n121611 "; // jida query qualk gnmkdm qual query query query quory _course "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=" ;// jida query 개인 클래스 일정 링크 공개 정적 최종 문자열 query_stu_course_gnmkdm ="& gnmkdm = n121603 "; // jida atrial course qual stred quely qual stred quiry qual stred "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=" ;// jida 개인 점수 링크 링크 공개 정적 최종 문자열 query_stu_grade_gnmkdm ="& gnmkdm = n121605 "; // jida intery public screat gnmkdm gnmkdm gnmkdm gnmkdm gnmkdm. 학생 공개 정적 최종 문자열 xixiaoqu = "1"; // jidaxi 캠퍼스 로고 공개 정적 최종 문자열 dongxiaoqu = "2"; // jidadong 캠퍼스 로고 공개 정적 최종 문자열 zhangqiuxiaoqu = "3"; // jida zhangqiu 캠퍼스 로고 공개 최종 문자열 class1 = "1 '|'1 ','0 ','0 ','0 ','0 ','0 ','0 ','0 '"; // 1, 2 공개 정적 최종 문자열 Class2 = "'2 '|'0 ','3 ','0 ','0 ','0 ','0 ','0 ','0 ','0 '; "3 '|'0 ','0 ','5 ','0 ','0 ','0 ','0 ','0 '"; // 섹션 5, 6 공개 정적 최종 문자열 class4 = "'4 '|'0 ','0 ','0 ','0 ','7 ','0 ','0 ',' ''; 8 Public String Class5 = " '5'| '0', '0', '0', '0', '9', '0', '0', '0'"; // 8, 10 섹션 public static final string 6 = " '6'| '0', '0', '0', '0', '0', '0', '11', ''0 ','0 '; // 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11; " '7'| '1', '3', '0', '0', '0', '0', '0', '0'"; // 11, 12 섹션 public static final string7 = " '7'| '1', '3', '0', '0', '0', '0', '0'; // 11, 12 Public Final Class8 =. " '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'"; = "btn_xq"; // 학기 점수 공개 정적 최종 문자열 btn_xuenian = "btn_xn"; // 학년도 점수 공개 정적 최종 문자열 btn_linian = "btn_zcj"; // 이전 연도 공개 정적 최종 문자열 University_code_ujn = "0000001"; "1"; // uncestified public static final string user_state_y = "2"; // public static final string comment_type_newthings = "1"; // 댓글 유형 1 : 새로운 public static final String _type_interest = "; // 댓글 유형 2 : 관심 활동} 4. ioutils.java
패키지 com.ican.yueban.utils; import java.awt.rectangle; import java.awt.image.bufferedimage; import java.io.bytearrayoutputstream; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; java.io.inputstream; java.io.outputStream; import java.net.url; import java.net.urlconnection; import java.util.iterator; 가져 오기 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.closeablehtpclient; import org.apache.http.impl.client.httpclients; public class ioutils { / ** * 인코딩 형식을 지정하고 입력 스트림을 문자열로 변환 * * @param is * @return * @throws ioexception * / public static string gethtml (inputstream is, string encoding) {bytearrayoutputstream bos = 새 BytearRayoutStream (); 바이트 [] 버퍼 = 새로운 바이트 [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 * @throws 예외 * / public static void download (문자열 urlstring, String filename, string savepath) 예외 던지기 {// construct url url = new url (urlstring); // 연결 열기 urlConnection con = url.openConnection (); // 요청 시간 초과를 5S Con.setConnectTimeout (5 * 1000)로 설정합니다. // 입력 스트림 입력 스트림은 = con.getInputStream (); // 1K 데이터 버퍼링 바이트 [] bs = 새로운 바이트 [1024]; // 데이터 길이 읽기 int len; // 출력 파일 스트림 파일 sf = 새 파일 (savepath); if (! sf.exists ()) {sf.mkdirs (); } outputStream os = 새 FileOutputStream (sf.getPath () + "//" + 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 (문자열 src, 문자열 dest, int x, int y, int w, int h) dacks {iterator iterator = imageio.getImagerEadersByFormatName ( "jpg"); imageReader reader = (imageReader) iterator.next (); inputStream in = new FileInputStream (SRC); ImageInputStream iis = imageio.createimageInputStream (in); reader.setInput (iis, true); imageEadparam param = reader.getDefaultReadParam (); 사각형 rect = 새로운 사각형 (x, y, w, h); param.setsourceregion (rect); BufferedImage bi = reader.Read (0, param); imageio.write (bi, "jpg", 새 파일 (dest)); 넣다(); } / ** * 판사 캐릭터 인코딩 세트 * * @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"; {if (str.equals (str.getBytes (encode), encode)))) {string s1 = encode; 반환 S1; }} catch (예외 예외 1) {} encode = "utf-8"; try {if (str.equals (새 문자열 (str.getBytes (encode), encode)))) {String s2 = encode; 반환 S2; }} catch (예외 예외 2) {} encode = "gbk"; try {if (str.equals (new String (str.getBytes (encode), encode))) {string s3 = encode; 반환 S3; }} catch (예외 예외 3) {} return "Unknown"; } / ** * 입력 스트림을 그림으로 변환합니다 ---》 검증 코드를 가져옵니다 * @param is * @param filename * @param savepath * @throws 예외 * / public static void getSecret (입력 스트림, 문자열 파일 이름, 문자열 savepath) throws exception {// 1k 데이터 버퍼 바이드 [] bs = new Byte [1024]; // 읽기 데이터 길이 int len; // 출력 파일 스트림 파일 SF = 새 파일 (SavePath); if (! sf.exists ()) {sf.mkdirs (); } outputStream os = 새 FileOutputStream (sf.getPath () + "//" + filename); // 읽기 시작 while ((len = is.read (bs))! = -1) {os.write (bs, 0, len); } // 마무리, 모든 링크를 닫습니다 os.close (); is.close (); } / ** * 숨겨진 필드의 __viewstate 값을 가져옵니다 * @param url * @param 쿠키 * @param 참조 * @return * @throws unsupportedoperationexception * @throws clientProtoColexception * @throws ioexception * / public statt getViewState (String Cookie, String String). ClientProtocoLexception, ioException {CloseableHttPclient Client = httpclients.createdEfault (); httpget getViewState = new httpget (url); getViewState.setHeader ( "쿠키", 쿠키); getViewState.SetHeader ( "CERENTER", CERETER); // 헤더 정보 STING STRING S = IOUTILS.GETHTML (Client.Execute (getViewState) .getEntity () .getContent (), "GB2312"); String viewstate = jsoup.parse (s) .select ( "input [name = __ viewstate]") .val (); client.close (); reack viewstate; }} 5. parseutils.java
패키지 com.ican.yueban.utils; 공개 클래스 parseutils { / ** * 코스 세션에 해당하는 문자열을 얻습니다. int nowcourse = integer.parseint (코스); 스위치 (nowcourse) {사례 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; }}위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.