FileUtils扩展readURLtoString读取url内容

 更新时间:2014年01月17日 09:45:43   作者:  
这篇文章主要介绍了FileUtils扩展readURLtoString使用其支持读取URL内容为String,支持带POST传大量参数,大家参考使用吧

复制代码 代码如下:

/**
  * 因为FileUtils不支持,所以添加个方法 String content =
  * FileUtils.readFileToString(FileUtils.toFile(new
  * URL("http://www.baidu.com")));
  *
  * @param source
  * @param encoding
  * @return
  * @throws IOException
  */
 public static String readURLToString(URL source) throws IOException {
  return readURLToString(source,null);
 }
 /**
  * 因为FileUtils不支持,所以添加个方法
  *
  * <pre>
  * String content = FileUtils.readFileToString(FileUtils.toFile(new URL(
  *   &quot;http://www.baidu.com&quot;)), &quot;gb2312&quot;);
  * </pre>
  *
  * @param source
  * @param encoding
  * @return
  * @throws IOException
  */
 public static String readURLToString(URL source, String encoding)
   throws IOException {
  InputStream input = source.openStream();
  try {
   return IOUtils.toString(input, encoding);
  } finally {
   IOUtils.closeQuietly(input);
  }
 }
 /**
  * 读取url的内容(method为post,可指定多个参数)
  * @param url
  * @param encoding
  * @param params map的参数(key为参数名,value为参数值)
  * @return String
  * @throws IOException
  */
 public static String readURLToStringByPOST(URL url, String encoding,Map<String, String> params)
 throws IOException {
  HttpURLConnection con = null;
  // 构建请求参数
  StringBuffer sb = new StringBuffer();
  if (params != null) {
   for (Entry<String, String> e : params.entrySet()) {
    sb.append(e.getKey());
    sb.append("=");
    sb.append(e.getValue());
    sb.append("&");
   }
   if(sb.length()>0){
    sb.substring(0, sb.length() - 1);
   }
  }
  // 尝试发送请求
  try {
   con = (HttpURLConnection) url.openConnection();
   con.setRequestMethod("POST");
   con.setDoOutput(true);
   con.setDoInput(true);
   con.setUseCaches(false);
   con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
   OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream(),encoding);
   if (params != null) {
    osw.write(sb.toString());
   }
   osw.flush();
   osw.close();
  } catch (Exception e) {
   LogFactory.getLog(FileUtils.class).error("POST("+url.toString()+")Error("+e.getMessage()+")",e);
  } finally {
   if (con != null) {
    con.disconnect();
   }
  }
  // 读取返回内容
  StringBuffer buffer = new StringBuffer();
  try {
   BufferedReader br = new BufferedReader(new InputStreamReader(con
     .getInputStream(),encoding));
   String temp;
   while ((temp = br.readLine()) != null) {
    buffer.append(temp);
    buffer.append("\n");
   }
  } catch (Exception e) {
   e.printStackTrace();
  }

  return buffer.toString();
 }

相关文章

  • Java利用POI实现导入导出Excel表格

    Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Spring Boot如何排除自动加载数据源

    Spring Boot如何排除自动加载数据源

    这篇文章主要介绍了Spring Boot如何排除自动加载数据源,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 详解Spring Security如何在权限中使用通配符

    详解Spring Security如何在权限中使用通配符

    小伙伴们知道,在Shiro中,默认是支持权限通配符的。现在给用户授权的时候,可以一个权限一个权限的配置,也可以直接用通配符。本文将介绍Spring Security如何在权限中使用通配符,需要的可以参考一下
    2022-06-06
  • Spring Security实现多次登录失败后账户锁定功能

    Spring Security实现多次登录失败后账户锁定功能

    当用户多次登录失败的时候,我们应该将账户锁定,等待一定的时间之后才能再次进行登录操作。今天小编给大家分享Spring Security实现多次登录失败后账户锁定功能,感兴趣的朋友一起看看吧
    2019-11-11
  • Java中遍历ConcurrentHashMap的四种方式详解

    Java中遍历ConcurrentHashMap的四种方式详解

    这篇文章主要介绍了Java中遍历ConcurrentHashMap的四种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java陷阱之assert关键字详解

    Java陷阱之assert关键字详解

    这篇文章详细介绍了Java陷阱之assert关键字,有需要的朋友可以参考一下
    2013-09-09
  • Spring\SpringBoot配置连接数据库的方法

    Spring\SpringBoot配置连接数据库的方法

    最近在学习SpringBoot,第一步就是要配置数据库,本文详细的介绍了Spring\SpringBoot配置连接数据库的方法,有需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • 详解java中jvm虚拟机栈的作用

    详解java中jvm虚拟机栈的作用

    这篇文章主要介绍了jvm虚拟机栈的作用,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Java详细讲解异常Exception的处理

    Java详细讲解异常Exception的处理

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等
    2022-06-06
  • Java中常用的类型转换(推荐)

    Java中常用的类型转换(推荐)

    这篇文章主要介绍了Java中常用的类型转换(推荐)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06

最新评论