zhykhs 发表于 2013-2-7 20:21:35

htmlclient

1.一个根据动态页路径和编码格式获得html格式文本的方法源代码:Java代码   1. // 返回html代码   2.   public final static String getHtmlCode(String httpUrl, String ecode) {   3.         // 构造HttpClient的实例   4.         HttpClient httpClient = new HttpClient();   5.         // 创建GET方法的实例   6.         GetMethod getMethod = new GetMethod(httpUrl);   7.         // 使用系统提供的默认的恢复策略   8.         getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,   9.               new DefaultHttpMethodRetryHandler());    10.         try {    11.             // 执行getMethod    12.             int statusCode = httpClient.executeMethod(getMethod);    13.             if (statusCode != HttpStatus.SC_OK) {    14.               System.err.println("Method failed: "    15.                         + getMethod.getStatusLine());    16.             }    17.             // 读取内容    18.             byte[] responseBody = getMethod.getResponseBody();    19.             // 处理内容    20.             return new String(responseBody, ecode);    21.         } catch (HttpException e) {    22.             // 发生致命的异常,可能是协议不对或者返回的内容有问题    23.             System.out.println("Please check your provided http address!");    24.             e.printStackTrace();    25.         } catch (IOException e) {    26.             // 发生网络异常    27.             e.printStackTrace();    28.         } finally {    29.             // 释放连接    30.             getMethod.releaseConnection();    31.         }    32.         return null;    33.   }// 返回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 {// 执行getMethodint 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文本内容)Java代码   1. public final static void saveHtmlCode(String filePath, String htmlCode) {   2.         FileOutputStream fOut = null;   3.         OutputStreamWriter out = null;   4.         try {   5.             fOut = new FileOutputStream(filePath);   6.             out = new OutputStreamWriter(fOut, "UTF-8");   7.             out.write(htmlCode);   8.         } catch (Exception e) {   9.             e.printStackTrace();    10.         } finally {    11.             try {    12.               out.flush();    13.             } catch (IOException e) {    14.               e.printStackTrace();    15.             }    16.             try {    17.               fOut.flush();    18.             } catch (IOException e) {    19.               e.printStackTrace();    20.             }    21.             try {    22.               out.close();    23.             } catch (IOException e) {    24.               e.printStackTrace();    25.             }    26.             try {    27.               fOut.close();    28.             } catch (IOException e) {    29.               e.printStackTrace();    30.             }    31.         }    32.   }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盘建立要保存文件的文件夹,然后保存文件Java代码   1. public static void main(String[] args) {   2.         String msgSaveFile = countHtmlFilePath("c://", new Date()) + "/test.html";   3.         String messageHtmlCode = getHtmlCode("test.jsp", "UTF-8");   4.         saveHtmlCode(msgSaveFile, messageHtmlCode);   5.   }   6.          7.   // 获得存储文件的目录   8.   public final static String countHtmlFilePath(String url, Date date) {   9.         SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd-hh");    10.         String time = sim.format(date);    11.         String[] result = time.split("-");    12.         String year = result;    13.         String month = result;    14.         String day = result;    15.         String hour = result;   16.         // 首先判断是否有年文件夹    17.         MyFileFilter filter = new TestClass().new MyFileFilter(true);    18.         boolean isExists = filter.isExistsDirectory(url, year + "");    19.         if (isExists) {    20.             if(filter.isExistsDirectory(url + "/" + year, month + "")) {    21.               if(filter.isExistsDirectory(url + "/" + year + "/" + month, day + "")) {    22.                     if(!filter.isExistsDirectory(url + "/" + year + "/" + month + "/" + hour, hour + "")) {    23.                         new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();    24.                     }    25.               } else {    26.                     new File(url + "/" + year + "/" + month + "/" + day).mkdir();    27.               }    28.             } else {    29.               new File(url + "/" + year + "/" + month).mkdir();    30.             }    31.         } else {    32.             new File(url + "/" + year).mkdir();    33.             new File(url + "/" + year + "/" + month).mkdir();    34.             new File(url + "/" + year + "/" + month + "/" + day).mkdir();    35.             new File(url + "/" + year + "/" + month + "/" + day + "/" + hour).mkdir();    36.         }    37.         return url + "/" + year + "/" + month + "/" + day + "/" + hour;    38.   }    39.         40.   41.   class MyFileFilter implements java.io.FileFilter {    42.   43.         private boolean isDirectory;    44.   45.         public MyFileFilter(boolean isDir) {    46.             this.isDirectory = isDir;    47.         }    48.   49.         @Override    50.         public boolean accept(File f) {    51.             if (f.isDirectory() == isDirectory) {    52.               return true;    53.             } else    54.               return false;    55.         }    56.             57.         public boolean isExistsDirectory(String path, String dir) {    58.             File file = new File(path);    59.             File[] childFiles = file.listFiles(this);    60.             for (File cFile : childFiles) {    61.               if(cFile.equals(dir)) {    62.                     return true;    63.               }    64.             }    65.             return false;    66.         }    67.   } 
页: [1]
查看完整版本: htmlclient