/**
           * 网络图片转base64
           * @param src
           * @return
           * @throws Exception
           */
          public static String getImageBase(String src) throws Exception {
       
              String s = "";
              //打开链接
              HttpURLConnection conn = null;
              try {
                  //new一个URL对象
                  URL url = new URL(src);
                  conn = (HttpURLConnection) url.openConnection();
                  //设置请求方式为"GET"
                  conn.setRequestMethod("GET");
                  //超时响应时间为5秒
                  conn.setConnectTimeout(5 * 1000);
                  //通过输入流获取图片数据
                  InputStream inStream = conn.getInputStream();
                  //得到图片的二进制数据,以二进制封装得到数据,具有通用性
                  byte[] data = readInputStream(inStream);
                  BASE64Encoder encode = new BASE64Encoder();
                  return encode.encode(data).replaceAll("\\n", "");
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return s;
          }
          private static byte[] readInputStream(InputStream inStream) {
              try {
       
                  ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                  //创建一个Buffer字符串, 这边buffer设置大一点就不会出现空的结尾现象
                  byte[] buffer = new byte[1024 * 1024];
                  //每次读取的字符串长度,如果为-1,代表全部读取完毕
                  int len = 0;
                  //使用一个输入流从buffer里把数据读取出来
                  while ((len = inStream.read(buffer)) != -1) {
                      //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
                      outStream.write(buffer, 0, len);
                  }
                  //关闭输入流
                  inStream.close();
                  //把outStream里的数据写入内存
                  return outStream.toByteArray();
              } catch (Exception e) {
                  e.printStackTrace();
              }
              return null;
          }

最新文章

  1. [javascript] 判断 iframe 是否加载完成
  2. 给tabBar设置图片和字体颜色的几种方法
  3. Oracle Ebs R12 SLA与GL关系变化
  4. ytu 1940:Palindromes _easy version(水题)
  5. js获取网页高度(详细整理)
  6. !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
  7. Writing Your First Test
  8. 网络资源(3) - iBatis视频
  9. ajax提交与上传文件同步
  10. 《JS权威指南学习总结--3.8类型转换》
  11. 关于sqlmap的一些命令
  12. jQuery(一)
  13. web理论知识--网页访问过程(附有Django的web项目访问流程)
  14. 关于WPF中Popup中的一些用法的总结
  15. 剑指offer(44)单词翻转序列
  16. npm 是干什么的
  17. VS的release工程设置为可调试
  18. python爬虫----XPath
  19. 【Java并发编程】2、无锁编程:lock-free原理;CAS;ABA问题
  20. mmcrfs

热门文章

  1. JUC并发编程
  2. Unity_UIWidgets - 组件Drawer
  3. Node.js学习笔记----day01
  4. C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(二)制作软件及软件试用时间限定
  5. 四、流程控制和break、continue、range函数的讲解
  6. CentOS即将停止维护,拥抱阿里“龙蜥“(Anolis OS),VMware安装Anolis OS与介绍
  7. 【学习日志】MySQL分表与索引的关系
  8. scroll-view滚动导航自动居中
  9. STM32F4库函数初始化系列:DMA串口接收
  10. print()、转义字符、标识符和保留字、变量、数据类型、类型转换