zoukankan      html  css  js  c++  java
  • java 从网络Url中下载文件 && java调用url接口

    java 从网络Url中下载文件

    /**
    * 从网络Url中下载文件
    * @param urlStr
    * @param fileName
    * @param savePath
    * @throws IOException
    */
    public static void downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{
      URL url = new URL(urlStr);
      HttpURLConnection conn = (HttpURLConnection)url.openConnection();
      //设置超时间为3秒
      conn.setConnectTimeout(3*1000);
      //防止屏蔽程序抓取而返回403错误
      conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

      //得到输入流
      InputStream inputStream = conn.getInputStream();
      //获取自己数组
      byte[] getData = readInputStream(inputStream);

      //文件保存位置
      File saveDir = new File(savePath);
      if(!saveDir.exists()){
        saveDir.mkdir();
      }
      File file = new File(saveDir+File.separator+fileName);
      FileOutputStream fos = new FileOutputStream(file);
      fos.write(getData);
      if(fos!=null){
        fos.close();
      }
      if(inputStream!=null){
        inputStream.close();
      }

      System.out.println("info:"+url+" download success");

    }

    /**
    * 从输入流中获取字节数组
    * @param inputStream
    * @return
    * @throws IOException
    */
    public static byte[] readInputStream(InputStream inputStream) throws IOException {
      byte[] buffer = new byte[1024];
      int len = 0;
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
      while((len = inputStream.read(buffer)) != -1) {
        bos.write(buffer, 0, len);
      }
      bos.close();
      return bos.toByteArray();
    }

    public static void main(String[] args) {
      try{
        downLoadFromUrl("http://101.95.48.97:8005/res/upload/interface/apptutorials/manualstypeico/6f83ce8f-0da5-49b3-bac8-fd5fc67d2725.png",
        "百度.jpg","d:/resource/images/diaodiao/country/");
      }catch (Exception e) {
        // TODO: handle exception
      }
    }

    很多简单的接口就是直接一个URl的形式,

    怎么调用?

    HttpClient httpclient=null;
    PostMethod post=null;
    try{
    httpclient = new HttpClient();
    post = new PostMethod(SendUrl);

    //设置编码方式
    post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"gbk");

    //添加参数
    post.addParameter("LoginName",LoginName);
    post.addParameter("Password", Password);

    //执行
    httpclient.executeMethod(post);

    //接口返回信息
    String info = new String(post.getResponseBody(),CHARSET);
    System.out.println(info);

    }catch (Exception e) {
    e.printStackTrace();
    }finally {
    //关闭连接,释放资源
    post.releaseConnection();
    ((SimpleHttpConnectionManager)httpclient.getHttpConnectionManager()).shutdown();
    }

    到此为止,主要为自己做备忘,同时方便有需要的人。呵呵!

  • 相关阅读:
    Git使用教程与基本原理和Sourcetree基本使用探微
    微博开发笔记上(未完待续)
    Swift入门
    刀哥之指纹识别biometrics
    iOS面试关于http知识点basic-01-http
    SDWebImageInfo
    runloop
    NSOperation类
    java多线程
    java集合类(二)
  • 原文地址:https://www.cnblogs.com/xiexy/p/4018323.html
Copyright © 2011-2022 走看看