package com.ruoyi.web.controller.tool;
|
|
import java.io.ByteArrayOutputStream;
|
import java.io.InputStream;
|
import java.net.HttpURLConnection;
|
import java.net.URL;
|
|
/**
|
* @author zhy
|
* @title: HttpClientUtil
|
* @projectName car_park
|
* @description: http连接工具类
|
* @date 2019/10/2219:23
|
*/
|
public class HttpClientUtil {
|
|
|
/**
|
* @param strUrl
|
* @return byte[]
|
* @throws
|
* @description: 获取网络图片转成字节流
|
* @author zhy
|
* @date 2019/10/23 8:59
|
*/
|
public static byte[] getImageFromNetByUrl(String strUrl) {
|
if (!isURL(strUrl)){
|
return null;
|
}
|
try {
|
URL url = new URL(strUrl);
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
conn.setRequestMethod("GET");
|
conn.setConnectTimeout(2 * 1000);
|
InputStream inStream = conn.getInputStream();// 通过输入流获取图片数据
|
byte[] btImg = readInputStream(inStream);// 得到图片的二进制数据
|
return btImg;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
/**
|
* 从输入流中获取字节流数据
|
*
|
* @param inStream 输入流
|
* @return
|
* @throws Exception
|
*/
|
public static byte[] readInputStream(InputStream inStream) throws Exception {
|
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
|
byte[] buffer = new byte[10240];
|
int len = 0;
|
while ((len = inStream.read(buffer)) != -1) {
|
outStream.write(buffer, 0, len);
|
}
|
inStream.close();
|
return outStream.toByteArray();
|
}
|
|
public static boolean isURL(String str) {
|
str = str.toLowerCase();
|
String regex = "^((https|http|ftp|rtsp|mms)?://)"
|
+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
|
+ "(([0-9]{1,3}\\.){3}[0-9]{1,3}"
|
+ "|"
|
+ "([0-9a-z_!~*'()-]+\\.)*"
|
+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\."
|
+ "[a-z]{2,6})"
|
+ "(:[0-9]{1,5})?"
|
+ "((/?)|"
|
+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
|
return str.matches(regex);
|
}
|
|
|
}
|
|