htmlclient 简单使用方法

1.一个根据动态页路径和编码格式获得html格式文本的方法源代码:

// 返回html代码
	public final static String getHtmlCode(String httpUrl, String ecode) {
		// 构造HttpClient的实例
		HttpClient httpClient = new HttpClient();
		// 创建GET方法的实例
		GetMethod getMethod = new GetMethod(httpUrl);
		// 使用系统提供的默认的恢复策略
		getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler());
		try {
			// 执行getMethod
			int statusCode = httpClient.executeMethod(getMethod);
			if (statusCode != HttpStatus.SC_OK) {
				System.err.println("Method failed: "
						+ getMethod.getStatusLine());
			}
			// 读取内容
			byte[] responseBody = getMethod.getResponseBody();
			// 处理内容
			return new String(responseBody, ecode);
		} catch (HttpException e) {
			// 发生致命的异常,可能是协议不对或者返回的内容有问题
			System.out.println("Please check your provided http address!");
			e.printStackTrace();
		} catch (IOException e) {
			// 发生网络异常
			e.printStackTrace();
		} finally {
			// 释放连接
			getMethod.releaseConnection();
		}
		return null;
	}

 2.将html文本写入一个文件中的方法(para1:保存文件名 para2:html文本内容)

public final static void saveHtmlCode(String filePath, String htmlCode) {
		FileOutputStream fOut = null;
		OutputStreamWriter out = null;
		try {
			fOut = new FileOutputStream(filePath);
			out = new OutputStreamWriter(fOut, "UTF-8");
			out.write(htmlCode);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.flush();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				fOut.flush();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				out.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				fOut.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

 3.下面是一段伪代码.根据当前时间现在c盘建立要保存文件的文件夹,然后保存文件

public static void main(String[] args) {
		String msgSaveFile = countHtmlFilePath("c://", new Date()) + "/test.html";
		String messageHtmlCode = getHtmlCode("test.jsp", "UTF-8");
		saveHtmlCode(msgSaveFile, messageHtmlCode);
	}
	
	// 获得存储文件的目录
	public final static String countHtmlFilePath(String url, Date date) {
		SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd-hh");
		String time = sim.format(date);
		String[] result = time.split("-");
		String year = result[0];
		String month = result[1];
		String day = result[2];
		String hour = result[3]; 
		// 首先判断是否有年文件夹
		MyFileFilter filter = new TestClass().new MyFileFilter(true);
		boolean isExists = filter.isExistsDirectory(url, year + "");
		if (isExists) {
			if(filter.isExistsDirectory(url + "/" + year, month + "")) {
				if(filter.isExistsDirectory(url + "/" + year + "/" + month, day + "")) {
					if(!filter.isExistsDirectory(url + "/" + year + "/" + month + "/" + hour, hour + "")) {
						new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();
					}
				} else {
					new File(url + "/" + year + "/" + month + "/" + day).mkdir();
				}
			} else {
				new File(url + "/" + year + "/" + month).mkdir();
			}
		} else {
			new File(url + "/" + year).mkdir();
			new File(url + "/" + year + "/" + month).mkdir();
			new File(url + "/" + year + "/" + month + "/" + day).mkdir();
			new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();
		}
		return url + "/" + year + "/" + month + "/" + day + "/" + hour;
	}
	

	class MyFileFilter implements java.io.FileFilter {

		private boolean isDirectory;

		public MyFileFilter(boolean isDir) {
			this.isDirectory = isDir;
		}

		@Override
		public boolean accept(File f) {
			if (f.isDirectory() == isDirectory) {
				return true;
			} else
				return false;
		}
		
		public boolean isExistsDirectory(String path, String dir) {
			File file = new File(path);
			File[] childFiles = file.listFiles(this);
			for (File cFile : childFiles) {
				if(cFile.equals(dir)) {
					return true;
				}
			}
			return false;
		}
	}
 

你可能感兴趣的:(html,C++,c,jsp,网络协议)