ファイルアドレスに基づいてファイルをダウンロードしbyteバイト配列を返す
1637 ワード
ネットワークファイルアドレスからファイルをダウンロードしbyteバイト配列を返す
/**
*
* @param filePath
* @return
* @throws BusinessException
*/
public byte[] dowloadWebFile(String filePath) throws BusinessException {
try {
URL url = new URL(filePath);
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)");
//
conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36");
//
InputStream inputStream = conn.getInputStream();
//
byte[] bs = readInputStream(inputStream);
return bs;
} catch (Exception e) {
// TODO: handle exception
throw new BusinessException(ErrorEnum.ERROR_SYSTEM," :"+e.getMessage());
}
}
/**
*
* @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();
}