Java simulates logging into the teaching administration to grab grades schedules and empty classrooms

  • 2020-05-07 19:50:54
  • OfStack

The example of this paper is to share the information of Java, such as score, class schedule, and empty classroom, etc., which is simulated to log on the front side of the educational administration, for your reference. The specific content is as follows

1.Jwgl.java


package 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.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
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;
 
import com.ican.yueban.utils.DateUtils;
import com.ican.yueban.utils.GlobalConstant;
import com.ican.yueban.utils.IOUtils;
import com.ican.yueban.utils.ParseUtils;
 
public class Jwgl {
  private static String stuNumber = "";
  private static String stuName = "";
  private static String Cookie = "";
  private String indexUrl = GlobalConstant.INDEX_URL;
  private String secretCodeUrl = GlobalConstant.SECRETCODE_URL;
  private String loginUrl = GlobalConstant.LOGIN_URL;
  private String 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;
  private String queryStuCourseUrl = GlobalConstant.QUERY_STU_COURSE_URL;
  private String queryStuCourseGnmkd = GlobalConstant.QUERY_STU_COURSE_GNMKDM;
  private String xixiaoqu = GlobalConstant.XIXIAOQU;
  private String identityStu = GlobalConstant.IDENTITY_STU;
 
  /**
   *  The login function 
   * 
   * @param stuNumber
   * @param password
   * @return
   * @throws Exception
   * @throws UnsupportedOperationException
   */
  public boolean login(String stuNumber, String password)
      throws UnsupportedOperationException, Exception {
    this.stuNumber = stuNumber;
    //  Get verification code 
    HttpGet secretCodeGet = new HttpGet(secretCodeUrl);
    CloseableHttpClient client = HttpClients.createDefault();
    CloseableHttpResponse responseSecret = client.execute(secretCodeGet);
    //  Get returned Cookie
    Cookie = responseSecret.getFirstHeader("Set-Cookie").getValue();
    String viewState = IOUtils.getViewState(indexUrl, "", "");
    //  Download the captcha to C disc 
    IOUtils.getSecret(responseSecret.getEntity().getContent(),
        "secretCode.png", "c://");
    Scanner sc = new Scanner(System.in);
    System.out.println(" Please enter verification code: ");
    //  Manually populates the value of the captcha you just obtained 
    String secret = sc.next().trim();
    HttpPost loginPost = new HttpPost(loginUrl);//  Create logon Post request 
    loginPost.setHeader("Cookie", Cookie);//  Take the first 1 Time request Cookie
    List<NameValuePair> nameValuePairLogin = new ArrayList<NameValuePair>();//  encapsulation Post Submit parameters 
    nameValuePairLogin
        .add(new BasicNameValuePair("__VIEWSTATE", viewState));//  Hide form values 
    nameValuePairLogin
        .add(new BasicNameValuePair("txtUserName", stuNumber));//  Student id 
    nameValuePairLogin.add(new BasicNameValuePair("TextBox2", password));//  password 
    nameValuePairLogin.add(new BasicNameValuePair("txtSecretCode", secret));//  Verification code 
    nameValuePairLogin.add(new BasicNameValuePair("RadioButtonList1",
        identityStu));//  identity , The default students 
    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(entity);
    HttpResponse responseLogin = client.execute(loginPost);
    // client1.close();
    //  The first 3 step : Determines whether the submitted data is successful and returns successfully 302
    if (responseLogin.getStatusLine().getStatusCode() == 302) {
      //  If the submission is successful, bring it with you Cookie Requesting a redirect main Page and get the student's name 
      HttpGet mainGet = new HttpGet(mainUrl + stuNumber);
      mainGet.setHeader("Cookie", Cookie);
      mainGet.setHeader("Referer", loginUrl);
      HttpResponse responseMain = client.execute(mainGet);
      InputStream is = responseMain.getEntity().getContent();
      String html = "";
      try {
        html = IOUtils.getHtml(is, "GB2312");
      } catch (Exception e) {
        System.out.println(" parsing html Failure! ");
        e.printStackTrace();
      }
      stuName = Jsoup.parse(html).getElementById("xhxm").text();
      System.out.println(" Login successful! Welcome you to: " + stuName);
      client.close();
      return true;
    } else {
      System.out.println(" Login failed! ");
      client.close();
      return false;
    }
 
  }
 
  /**
   *  Inquire about empty classroom 
   * 
   * @throws Exception
   * 
   * @throws Exception
   */
  public void queryClassroom(String xiaoqu, String xqj, String sjd)
      throws Exception {
 
    CloseableHttpClient client = HttpClients.createDefault();
    String newQueryClassrommUrl = queryClassroomUrl + stuNumber + "&xm="
        + stuName + queryClassroomGnmkdm;//  Splicing requested Url
    String parseSjd = ParseUtils.parseWeek(sjd);//  Parses the string corresponding to the current section 
    String nowWeek = DateUtils.getWeek() + "";//  Get the current time in weeks 
    String viewState = IOUtils.getViewState(newQueryClassrommUrl, Cookie,
        mainUrl + stuNumber);
    //  Encapsulates the query for empty classroom request parameters 
    List<NameValuePair> queryClassroomPair = new ArrayList<NameValuePair>();
    queryClassroomPair.add(new BasicNameValuePair("__EVENTTARGET", ""));
    queryClassroomPair.add(new BasicNameValuePair("__EVENTARGUMENT", ""));
    queryClassroomPair
        .add(new BasicNameValuePair("__VIEWSTATE", viewState));
    queryClassroomPair.add(new BasicNameValuePair("xiaoq", xiaoqu));//  Campus type, default west campus 
    queryClassroomPair.add(new BasicNameValuePair("jslb", ""));//  Classroom category, which is empty by default 
    queryClassroomPair.add(new BasicNameValuePair("min_zws", "0"));//  Minimum number of seats, by default 0
    queryClassroomPair.add(new BasicNameValuePair("max_zws", ""));//  Maximum number of seats, empty by default 
    queryClassroomPair.add(new BasicNameValuePair("ddlKsz", nowWeek));//  Start week, default current week 
    queryClassroomPair.add(new BasicNameValuePair("ddlJsz", nowWeek));//  End week, default current week 
    queryClassroomPair.add(new BasicNameValuePair("xqj", xqj));//  What day , On the day of the default 
    queryClassroomPair.add(new BasicNameValuePair("ddlDsz", ""));//  Single or biweekly, by default 
    queryClassroomPair.add(new BasicNameValuePair("sjd", parseSjd));//  Which section 
    queryClassroomPair.add(new BasicNameValuePair("Button2", " Empty classroom enquiry "));
    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(
        queryClassroomPair);
 
    HttpPost queryClassroomPost = new HttpPost(newQueryClassrommUrl);
    // newQueryClassrommUrl The sample :http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=20121214104&xm=XXX&gnmkdm=N121611
    queryClassroomPost.setEntity(entityClassroom);
    queryClassroomPost.setHeader("Referer", mainUrl + stuNumber);//  Set header information 
    queryClassroomPost.setHeader("Cookie", Cookie);
    HttpResponse responseClassroom = client.execute(queryClassroomPost);
    InputStream is = 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());
    for (int i = 0; i < eleClassroom.size(); i++) {
      //  Print only the classroom name 
      if (i % 8 == 1) {
        System.out.println(eleClassroom.get(i).text());
      }
    }
    client.close();
  }
 
  /**
   *  Reload the query empty classroom method, the default time, class session of the no - parameter query method 
   * 
   * @throws IOException
   * @throws ClientProtocolException
   */
  public void queryClassroom() throws ClientProtocolException, IOException,
      Exception {
    String weekDay = DateUtils.getWeekDay() + "";//  Gets the current day of the week 
    String sdj = DateUtils.getNowCourse() + "";//  Get the current time in what class 
    new Jwgl().queryClassroom(xixiaoqu, weekDay, sdj);
  }
 
  /**
   *  Inquire individual achievement method 
   * 
   * @throws ClientProtocolException
   * @throws IOException
   */
  public void queryStuGrade(String xn, String xq)
      throws ClientProtocolException, IOException {
    CloseableHttpClient client = HttpClients.createDefault();
    String newQueryStuGradeUrl = queryStuGradeUrl + stuNumber + "&xm="
        + stuName + queryStuGradeGnmkd;
    HttpPost queryGradePost = new HttpPost(newQueryStuGradeUrl);
    String viewState = IOUtils.getViewState(newQueryStuGradeUrl, Cookie,
        mainUrl + stuNumber);
    //  Encapsulating request parameters 
    List<NameValuePair> queryGradePair = new ArrayList<NameValuePair>();
    queryGradePair.add(new BasicNameValuePair("__EVENTTARGET", ""));
    queryGradePair.add(new BasicNameValuePair("__EVENTARGUMENT", ""));
    queryGradePair.add(new BasicNameValuePair("__VIEWSTATE", viewState));
    queryGradePair.add(new BasicNameValuePair("hidLanguage", ""));
    queryGradePair.add(new BasicNameValuePair("ddlXN", xn));//  The academic year 
    queryGradePair.add(new BasicNameValuePair("ddlXQ", xq));//  semester 
    queryGradePair.add(new BasicNameValuePair("ddl_kcxz", ""));
    queryGradePair.add(new BasicNameValuePair("btn_xq", " Semester grades "));
    queryGradePost.setHeader("Cookie", Cookie);
    queryGradePost.setHeader("Referer", mainUrl + stuNumber);
    UrlEncodedFormEntity entityGrade = new UrlEncodedFormEntity(
        queryGradePair);
    queryGradePost.setEntity(entityGrade);
    HttpResponse responQueryGradePost = client.execute(queryGradePost);
 
    String gradeHtml = IOUtils.getHtml(responQueryGradePost.getEntity()
        .getContent(), "GB2312");
    // System.out.println(gradeHtml);
    Document gradeDoc = Jsoup.parse(gradeHtml);
    Elements eleGrade = gradeDoc.select("td");
    //  As required html<td> Label content and output 
    for (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();
 
    }
 
  }
 
  /**
   *  Inquire individual schedule method 
   * 
   * @param xnd
   * @param xqd
   * @throws ClientProtocolException
   * @throws IOException
   */
  public void queryStuCourse(String xnd, String xqd)
      throws ClientProtocolException, IOException {
    CloseableHttpClient client = HttpClients.createDefault();
    String newQueryStuCourseUrl = queryStuCourseUrl + stuNumber + "&xm="
        + stuName + queryStuCourseGnmkd;
    String viewState = IOUtils.getViewState(newQueryStuCourseUrl, Cookie,
        mainUrl + stuNumber);
    HttpPost queryStuCoursePost = new HttpPost(newQueryStuCourseUrl);
    List<NameValuePair> 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);
    queryStuCoursePost.setEntity(entitySource);
    queryStuCoursePost.setHeader("Cookie", Cookie);
    queryStuCoursePost.setHeader("Referer", mainUrl + stuNumber);
    HttpResponse responseStuCourse = client.execute(queryStuCoursePost);
    String html = IOUtils.getHtml(responseStuCourse.getEntity()
        .getContent(), "GB2312");
    Document docCourse = Jsoup.parse(html);
    Elements 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();
    try {
      jw.login(" Here is the student number ", " Here's the code ");
      System.out.println(" Query performance test -------");
      jw.queryStuGrade("2015-2016", "1");
      //  Inquire west campus, zhou 1 In the first 12 Section empty classroom test. 
      // jw.queryClassroom("1", "1", "2");
      System.out.println(" Query the empty classroom test ------");
      jw.queryClassroom();
      System.out.println(" Query individual schedule test -------");
      jw.queryStuCourse("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;
 
public class DateUtils {
  private static String startDay = GlobalConstant.START_DAY;//  Opening date 
  private static String endDay = GlobalConstant.END_DAY;//  The holiday date 
 
  /**
   *  Get the current time of the class, only 8-16 Between points , Other times default 1 . 2 Class. 
   * 
   * @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 Class. 
    } else if (nowDate.startsWith("10") || nowDate.startsWith("11")) {
      return 2;// 34 And so on. 
    } 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;
    }
  }
 
  /**
   *  Get the current time in weeks 
   * 
   * @return
   */
  public static int getWeek() {
    int days = 0;
    int nowWeek = 0;
    try {
      SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//  Set date format 
      String nowDate = df.format(new Date());
      int nowDaysBetween = daysBetween(startDay, nowDate) + 1;
      days = daysBetween(startDay, endDay);
      int x = nowDaysBetween % 7;
      if (x == 0) {
        nowWeek = nowDaysBetween / 7;
      } else {
        nowWeek = nowDaysBetween / 7 + 1;
      }
 
    } catch (ParseException e) {
      System.out.println(" The date entered is not valid. The date resolved failed ");
      e.printStackTrace();
    }
    return nowWeek;
  }
 
  /**
   *  Gets the current day of the week 
   * 
   * @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;
  }
 
  /**
   *  Calculated two String The number of days between type dates 
   * 
   * @param startDay
   * @param endDay
   * @return
   * @throws ParseException
   */
  public static int daysBetween(String startDay, String endDay)
      throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal = Calendar.getInstance();
    cal.setTime(sdf.parse(startDay));
    long time1 = cal.getTimeInMillis();
    cal.setTime(sdf.parse(endDay));
    long time2 = cal.getTimeInMillis();
    long between_days = (time2 - time1) / (1000 * 3600 * 24);
 
    return Integer.parseInt(String.valueOf(between_days));
  }
 
  /**
   *  In order to yyyy-MM-dd HH:mm:ss Returns the String Type system time 
   * 
   * @return
   */
  public static String getNowDate() {
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//  Set date format 
    return df.format(new Date());
  }
 
}

3.GlobalConstant.java    


package com.ican.yueban.utils;
 
/**
 *  Definition of all constants in this system 
 * 
 * @author  Sung opens zong 
 * 
 */
public interface 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";//  Home page of educational administration system of ji university 
  public static final String SECRETCODE_URL = "http://jwgl2.ujn.edu.cn/CheckCode.aspx";//  Verification code page 
  public static final String LOGIN_URL = "http://jwgl2.ujn.edu.cn/default2.aspx";//  Ji university educational administration system login page 
  public static final String MAIN_URL = "http://jwgl2.ujn.edu.cn/xs_main.aspx?xh=";//  Jida educational administration system home page, menu page 
  public static final String QUERY_CLASSROOM_URL = "http://jwgl2.ujn.edu.cn/xxjsjy.aspx?xh=";//  Jida links to empty classrooms 
  public static final String QUERY_CLASSROOM_GNMKDM = "&gnmkdm=N121611";//  Jida is inquiring about empty classrooms gnmkdm
  public static final String QUERY_STU_COURSE_URL = "http://jwgl2.ujn.edu.cn/xskbcx.aspx?xh=";//  Jida links to individual schedules 
  public static final String QUERY_STU_COURSE_GNMKDM = "&gnmkdm=N121603";//  Jida to inquire about individual curriculum gnmkdm
  public static final String QUERY_STU_GRADE_URL = "http://jwgl2.ujn.edu.cn/xscjcx.aspx?xh=";//  Ji da enquiry individual achievement link 
  public static final String QUERY_STU_GRADE_GNMKDM = "&gnmkdm=N121605";//  Jida to inquire about individual results gnmkdm
  public static final String IDENTITY_STU = " students ";//  Status: student 
  public static final String XIXIAOQU = "1";//  Ji da xi campus logo 
  public static final String DONGXIAOQU = "2";//  Jidadong campus logo 
  public static final String ZHANGQIUXIAOQU = "3";//  Ji da zhangqiu campus logo 
  public static final String CLASS1 = "'1'|'1','0','0','0','0','0','0','0','0'";// 1 . 2 section 
  public static final String CLASS2 = "'2'|'0','3','0','0','0','0','0','0','0'";// 3 . 4 section 
  public static final String CLASS3 = "'3'|'0','0','5','0','0','0','0','0','0'";// 5 . 6 section 
  public static final String CLASS4 = "'4'|'0','0','0','7','0','0','0','0','0'";// 7 . 8 section 
  public static final String CLASS5 = "'5'|'0','0','0','0','9','0','0','0','0'";// 8 . 10 section 
  public static final String CLASS6 = "'6'|'0','0','0','0','0','11','0','0','0'";// 11 . 12 section 
  public static final String CLASS7 = "'7'|'1','3','0','0','0','0','0','0','0'";//  In the morning 
  public static final String CLASS8 = "'8'|'0','0','5','7','0','0','0','0','0'";//  In the afternoon 
  public static final String CLASS9 = "'9'|'1','3','5','7','0','0','0','0','0'";//  day 
  public static final String CLASS10 = "'10'|'0','0','0','0','9','11','0','0','0'";//  evening 
  public static final String CLASS11 = "'11'|'1','3','5','7','9','11','0','0','0'";//  Throughout the day 
  public static final String BTN_XUEQI = "btn_xq";//  Semester grades 
  public static final String BTN_XUENIAN = "btn_xn";//  Academic achievement 
  public static final String BTN_LINIAN = "btn_zcj";//  Past performance 
  public static final String UNIVERSITY_CODE_UJN = "00001";//  University of jinan identification code 
  public static final String USER_STATE_N = "1";//  unauthorized 
  public static final String USER_STATE_Y = "2";//  Certification by 
  public static final String COMMENT_TYPE_NEWTHINGS = "1";//  The comment type 1 : new 
  public static final String COMMENT_TYPE_INTEREST = "2";//  The comment type 2 : interest activities 
}

4.IOUtils.java  


package 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;
import java.io.InputStream;
import 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.HttpClients;
import org.jsoup.Jsoup;
 
public class IOUtils {
  /**
   *  Specified encoding format   , to stream the input as a string 
   * 
   * @param is
   * @return
   * @throws IOException
   */
  public static String getHtml(InputStream is, String encoding)
      throws IOException {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = 0;
    while ((len = is.read(buffer)) != -1) {
      bos.write(buffer, 0, len);
    }
    is.close();
    return new String(bos.toByteArray(), encoding);
  }
 
  /**
   *  Download the pictures 
   * 
   * @param urlString
   * @param filename
   * @param savePath
   * @throws Exception
   */
  public static void download(String urlString, String filename,
      String savePath) throws Exception {
    //  structure URL
    URL url = new URL(urlString);
    //  Open the connection 
    URLConnection con = url.openConnection();
    //  Set the request timeout to 5s
    con.setConnectTimeout(5 * 1000);
    //  The input stream 
    InputStream is = con.getInputStream();
 
    // 1K Data buffering 
    byte[] bs = new byte[1024];
    //  Length of data read 
    int len;
    //  Output file stream 
    File sf = new File(savePath);
    if (!sf.exists()) {
      sf.mkdirs();
    }
    OutputStream os = new FileOutputStream(sf.getPath() + "\\" + filename);
    //  Began to read 
    while ((len = is.read(bs)) != -1) {
      os.write(bs, 0, len);
    }
    //  Over, close all links 
    os.close();
    is.close();
  }
 
  /**
   *  Image clipping tool class 
   * 
   * @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) throws IOException {
    Iterator iterator = ImageIO.getImageReadersByFormatName("jpg");
    ImageReader reader = (ImageReader) iterator.next();
    InputStream in = new FileInputStream(src);
    ImageInputStream iis = ImageIO.createImageInputStream(in);
    reader.setInput(iis, true);
    ImageReadParam param = reader.getDefaultReadParam();
    Rectangle rect = new Rectangle(x, y, w, h);
    param.setSourceRegion(rect);
    BufferedImage bi = reader.read(0, param);
    ImageIO.write(bi, "jpg", new File(dest));
    in.close();
 
  }
 
  /**
   *  Determines the character encoding set 
   * 
   * @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;
        return s;
      }
    } catch (Exception exception) {
    }
    encode = "ISO-8859-1";
    try {
      if (str.equals(new String(str.getBytes(encode), encode))) {
        String s1 = encode;
        return s1;
      }
    } catch (Exception exception1) {
    }
    encode = "UTF-8";
    try {
      if (str.equals(new String(str.getBytes(encode), encode))) {
        String s2 = encode;
        return s2;
      }
    } catch (Exception exception2) {
    }
    encode = "GBK";
    try {
      if (str.equals(new String(str.getBytes(encode), encode))) {
        String s3 = encode;
        return s3;
      }
    } catch (Exception exception3) {
    }
    return " The unknown ";
  }
 
  /**
   *  Replace the input stream with a picture --- Get the captcha 
   * 
   * @param is
   * @param filename
   * @param savePath
   * @throws Exception
   */
  public static void getSecret(InputStream is, String filename,
      String savePath) throws Exception {
    // 1K Data buffering 
    byte[] bs = new byte[1024];
    //  Length of data read 
    int len;
    //  Output file stream 
    File sf = new File(savePath);
    if (!sf.exists()) {
      sf.mkdirs();
    }
    OutputStream os = new FileOutputStream(sf.getPath() + "\\" + filename);
    //  Began to read 
    while ((len = is.read(bs)) != -1) {
      os.write(bs, 0, len);
    }
    //  Over, close all links 
    os.close();
    is.close();
  }
 
  /**
   *  Gets the hidden field __VIEWSTATE value 
   * 
   * @param url
   * @param cookie
   * @param referer
   * @return
   * @throws UnsupportedOperationException
   * @throws ClientProtocolException
   * @throws IOException
   */
  public static String getViewState(String url, String cookie, String referer)
      throws UnsupportedOperationException, ClientProtocolException,
      IOException {
    CloseableHttpClient client = HttpClients.createDefault();
    HttpGet getViewState = new HttpGet(url);
    getViewState.setHeader("Cookie", cookie);
    getViewState.setHeader("Referer", referer);//  Set header information 
    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


package com.ican.yueban.utils;
 
public class ParseUtils {
  /**
   *  Gets the string corresponding to the session 
   * @param course
   * @return
   */
  public static String parseWeek(String course) {
    String sjd="";
    int nowCourse = Integer.parseInt(course);
    switch (nowCourse) {
    case 1:
      sjd=GlobalConstant.CLASS1;
      break;
    case 2:
      sjd=GlobalConstant.CLASS2;
      break;
    case 3:
      sjd=GlobalConstant.CLASS3;
      break;
    case 4:
      sjd=GlobalConstant.CLASS4;
      break;
    case 5:
      sjd=GlobalConstant.CLASS5;
      break;
    case 6:
      sjd=GlobalConstant.CLASS6;
      break;
    case 7:
      sjd=GlobalConstant.CLASS7;
      break;
    case 8:
      sjd=GlobalConstant.CLASS8;
      break;
    case 9:
      sjd=GlobalConstant.CLASS9;
      break;
    case 10:
      sjd=GlobalConstant.CLASS10;
      break;
    case 11:
      sjd=GlobalConstant.CLASS11;
      break;
    default:
      sjd=GlobalConstant.CLASS1;
      break;
    }
 
    return sjd;
  }
}

The above is the entire content of this article, I hope to help you with your study.


Related articles: