CET终极查分程序 Java版

今天早上上了第一课《网络编程》,老师就知道无聊地吹……用Opera mini看绝影的小说(疯狂程序员)到下课。

原来这学期的网络编程主要是用Java,好像还没怎么写过Java的网络连接代码,想起早天的Python版本CETQuery,决定花两个小时弄弄,权当Java Hello World。

过程遇到的问题除了那些API的使用外,主要是Java的中文编码问题了。编写本地程序时,管你中文日文希腊文,因为Java用的是Unicode编码,通通支持。但这次是从网络读取的数据,其中的中文是GB2312编码的,直接显示就乱码给你看。Java和Python都有中文编码问题,虽说殊途同归,但他们的“问题”可是各具特色的,稍后准备撰文详其解决之道。

CETQuery-Java详细代码如下:

import java.net.*;
import java.io.*;
 
public class CETQuery {
	public static void main(String[] args) {
		if ((args.length != 2) || ((args[0] == "4") || (args[1] == "6"))
				|| (args[1].length() != 15)) {
			System.out.println("Error: 程序参数错误,考试类型(4、6),准考证号长度(15位)");
			System.out
					.println("nExample:nnjava CETQuery 4 123456789012345nn");
			System.out
					.println("CETQuery-Java version 0.1  2009.2.26nn    An Exercise Program by PT, GZ Universityn    Author Blog: http://apt-blog.net , Welcome to Drop by.nn");
			System.exit(1);
		}
 
		String cet_url = "http://cet.99sushe.com/cetscore_99sushe0902.html?t="
				+ args[0] + "&id=" + args[1];
		String result = new String();
 
		try {
			URL url = new URL(cet_url);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			conn.addRequestProperty("Referer", "http://cet.99sushe.com/");
			// conn.setRequestMethod("POST");
			System.out.println(conn.getURL());
			InputStream in = conn.getInputStream();
			byte[] data = new byte[1024];
			while (in.read(data) > 0) {
				result += new String(data, "gb2312");
			}
			in.close();
		} catch (Exception e) {
			System.out.println(e);
		}
 
		// System.out.println(result);
 
		String[] array = result.split(",");
		String[] type = { "听力", "阅读", "综合", "写作", "总分", "学校", "姓名", "Prev 1",
				"Next 1", "Next 2" };
		System.out.printf("n***** CET %s 成绩清单 *****n", args[0]);
		System.out.println("-准考证号: " + args[1]);
		for (int i = 0; i < array.length; i++) {
			System.out.printf("-%s: %sn", type[i], array[i]);
		}
		System.out.println("**************************n");
	}
}
文章分类 Java, Programming 标签: , , ,
3 comments on “CET终极查分程序 Java版
  1. GreatGhoul说道:

    这个我喜欢,上次那个python版的不会用.

  2. PT说道:

    呵呵,做这个Java好像太杀鸡用牛刀了点,Python很适合搞小玩意。

  3. loxchen说道:

    原来java网络编程还可以这样用,我喜欢
    可惜我试的时候,这方法已经不能用了,信息都在JavaScript中,
    还要进一步解析才行。
    燃点起我的斗志了

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*