噜噜噜,附上代码~~~
不过说句老实话,ACM是真的比写这个有意思多了,吸吸吸~~
package jwgl;
import java.io.IOException;
import website.login;
public class Main {
public static void main(String[] args){
try {
login.login_jwgl();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package website;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
//import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.LaxRedirectStrategy;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import constval.pageval;
public class login {
//static HttpHost proxy = new HttpHost("127.0.0.1",8080);
static RequestConfig requestConfig = RequestConfig.custom()
//.setProxy(proxy)
.setConnectTimeout(10000) // 设置连接超时时间
.setConnectionRequestTimeout(100000) // 设置请求超时时间
.setSocketTimeout(100000).setRedirectsEnabled(true)// 默认允许自动重定向
.build();
public static void login_jwgl() throws ClientProtocolException, IOException {
HttpClientBuilder builder = HttpClients.custom().disableAutomaticRetries() // 关闭自动处理重定向
.setRedirectStrategy(new LaxRedirectStrategy());// 利用LaxRedirectStrategy处理POST重定向问题
CloseableHttpClient httpClient = builder.setDefaultRequestConfig(requestConfig).build();
String state=pageval.get_page();
HttpPost httpPost = new HttpPost(pageval.login_page+state+"/default2.aspx");
System.err.println("RemoteHost :"+pageval.login_page+state+"/default2.aspx");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入学号 :");
String Sno=scanner.nextLine();
System.out.println("请输入密码 :");
String password=scanner.nextLine();
Listlist = new ArrayList();
list.add(new BasicNameValuePair("__VIEWSTATE", "dDwtMTg3MTM5OTI5MTs7PqzAMxEcbTO1Y3iF3fZH/MWfvpUe"));
list.add(new BasicNameValuePair("TextBox1", Sno));
list.add(new BasicNameValuePair("TextBox2", password));
list.add(new BasicNameValuePair("RadioButtonList1", "%D1%A7%C9%FA"));
list.add(new BasicNameValuePair("Button1", ""));
list.add(new BasicNameValuePair("lbLanguage", ""));
try{
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,"gb2312");
httpPost.setEntity(entity);
HttpResponse httpResponse=httpClient.execute(httpPost);
if(httpResponse.getStatusLine().getStatusCode()==200){
String webCode= EntityUtils.toString(httpResponse.getEntity());
String Sname=pageval.get_Sname(webCode, Sno);
String stoken=pageval.get_stoken(webCode);
System.out.println("Welcome "+Sname+" ~~~");
pageval.printClasses(httpClient,state,Sno,Sname,stoken);
System.err.println("----------------------------------------------------->");
pageval.printStudySchedule(httpClient, state, Sno, Sname, stoken);
httpPost.abort();
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(httpClient!=null){
try {
httpClient.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
scanner.close();
}
}
}
package constval;
import java.util.List;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import util.DP;
public class pageval {
private static RequestConfig requestConfig=RequestConfig.custom()
.setRedirectsEnabled(false)
.build();
public static String login_page="http://202.197.120.57";
public static String get_page() throws ClientProtocolException, IOException {
HttpClient httpClient=HttpClients.createDefault();
HttpGet httpGet=new HttpGet(login_page);
httpGet.setConfig(requestConfig);
HttpResponse httpResponse=httpClient.execute(httpGet);
String host="";
if(httpResponse.getStatusLine().getStatusCode()==302){
Header[] header=httpResponse.getAllHeaders();
for(int i=0;i"+Sno;
String to="同学";
int idx1=webCode.indexOf(from)+30;
int idx2=webCode.indexOf(to);
return webCode.substring(idx1,idx2);
}
public static String get_stoken(String webCode){
String from="&gnmkdm=";
int idx=webCode.indexOf(from);
return webCode.substring(idx+8,idx+15);
}
public static String get_viewstate1(String webCode){
int idx1=webCode.indexOf("value=\"")+7;
int idx2=webCode.indexOf("
")-11;
return webCode.substring(idx1, idx2);
}
public static String get_viewstate2(String webCode){
int idx1=webCode.indexOf("__VIEWSTATE\" value=\"")+20;
int idx2=webCode.indexOf("