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();
 }

相关文章

  • springboot 多环境配置教程

    springboot 多环境配置教程

    这篇文章主要介绍了springboot 常用配置之多环境配置,需要的朋友可以参考下
    2018-04-04
  • 解决spring AOP中自身方法调用无法应用代理的问题

    解决spring AOP中自身方法调用无法应用代理的问题

    这篇文章主要介绍了解决spring AOP中自身方法调用无法应用代理的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Servlet关于RequestDispatcher的原理详解

    Servlet关于RequestDispatcher的原理详解

    这篇文章主要介绍了Servlet关于RequestDispatcher的原理详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java 线程池框架

    Java 线程池框架

    本文主要介绍了Java 线程池框架的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • java基本教程之join方法详解 java多线程教程

    java基本教程之join方法详解 java多线程教程

    本文对java Thread中join()方法进行介绍,join()的作用是让“主线程”等待“子线程”结束之后才能继续运行,大家参考使用吧
    2014-01-01
  • java异常处理的简单练习

    java异常处理的简单练习

    下面小编就为大家带来一篇java异常处理的简单练习。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 详解JAVA中的Collection接口和其主要实现的类

    详解JAVA中的Collection接口和其主要实现的类

    这篇文章主要介绍了JAVA中的Collection接口和其主要实现的类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java常用的时间类以及其转化方式

    Java常用的时间类以及其转化方式

    这篇文章主要介绍了Java常用的时间类以及其转化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • ElasticSearch查询文档基本操作实例

    ElasticSearch查询文档基本操作实例

    这篇文章主要为大家介绍了ElasticSearch查询文档基本操作实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • SpringBoot全局异常处理与定制404页面的方法

    SpringBoot全局异常处理与定制404页面的方法

    这篇文章主要介绍了SpringBoot全局异常处理与定制404页面的相关资料,本文通过实例代码图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2007-09-09

最新评论