之前试过读取流信息不完整,通过循环读取即可关键方法:readStream(InputStream inStream))
/**
* @Description: 根据图片地址转换为base64编码字符串
* @Author xumj@jbztech.com
* @Date 2019/01/13 17:40
* @return
*/
public static String getImageStr(String urlString){
try {
// 构造URL
URL url = new URL(urlString);
// 打开URL连接
URLConnection con = url.openConnection();
InputStream is = null;
byte[] data = null;
try {
is = con.getInputStream();
data = readStream(is);
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
public static byte[] readStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = inStream.read(buffer)) != -1) {
outSteam.write(buffer, 0, len);
}
outSteam.close();
inStream.close();
return outSteam.toByteArray();
}