Java URL 内容获取工具类 - 获取指定 URL 的二进制字节码
Java URL 内容获取工具类 - 获取指定 URL 的二进制字节码
这段代码是一个用于获取指定 URL 的二进制字节码的工具类。它使用了 Java 的 URL 和 HttpURLConnection 类来建立 HTTP 连接,并通过输入流获取 URL 的内容。
package Intent;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.zip.GZIPInputStream;
public class GetContentUrl {
/**
* 获取指定 url 的二进制字节码
*/
static public ArrayList<Byte> getUrlContent(String url) throws IOException {
ArrayList<Byte> content = new ArrayList<Byte>();
try { // 创建URL对象
URL server = new URL(url); // 打开HTTP连接
HttpURLConnection connection = (HttpURLConnection) server.openConnection();
connection.setConnectTimeout(60 * 1000);// 设置连接超时// 设置连接超时时间为60秒
connection.connect(); // 连接
InputStream is = connection.getInputStream();// 获取输入流
// 使用ByteArrayOutputStream来保存字节码
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];// 缓冲区
int len = -1;
while ((len = is.read(buffer)) != -1) {// 保存字节码到ByteArrayOutputStream
outStream.write(buffer, 0, len);
for (int i = 0; i < len; i++) // 将每个字节添加到content列表中
content.add(new Byte(buffer[i]));
}
// 关闭输入流
is.close();
} catch (UnknownHostException e) { // 处理UnknownHostException,打印异常信息
System.out.println(e.getClass().getName() + ':' + e.getMessage());
} catch (IOException e) { // 处理IOException,打印异常信息
System.out.println(e.getClass().getName() + ':' + e.getMessage());
}
return content; // 返回获取到的二进制字节码
}
}
代码解释
- 创建 URL 对象,传入指定的 URL 参数。
- 打开 HTTP 连接,使用 URLConnection 的子类 HttpURLConnection 来进行连接。
- 设置连接超时时间为 60 秒。
- 调用 connect() 方法进行连接。
- 获取输入流,使用 getInputStream() 方法。
- 创建一个 ByteArrayOutputStream 对象,用于保存字节码。
- 创建一个缓冲区 byte 数组,用于读取输入流的内容。
- 使用循环,不断从输入流中读取内容,并将读取的内容写入 ByteArrayOutputStream 对象中。
- 同时,将每个读取的字节添加到一个 ArrayList
对象中,以便后续使用。 - 关闭输入流。
- 处理可能发生的异常,如 UnknownHostException 和 IOException,并打印异常信息。
- 返回获取到的二进制字节码,以 ArrayList
的形式。
如何使用
这个工具类可以在其他代码中使用,通过调用 getUrlContent() 方法并传入指定的 URL,即可获取到该 URL 的二进制字节码。
String url = "https://www.example.com/image.jpg";
ArrayList<Byte> content = GetContentUrl.getUrlContent(url);
注意
- 该代码没有对输入流进行任何处理,建议在实际使用中根据需要进行处理,例如对 gzip 压缩的响应进行解压缩。
- 该代码没有处理网络连接错误,建议在实际使用中进行异常处理,并根据需要进行重试操作。
总结
这是一个简单的 Java 工具类,用于获取指定 URL 的二进制字节码。它可以方便地用于各种网络应用程序,例如下载文件、获取图片等。
希望这篇文章对您有所帮助。如果您有任何问题,请随时留言。
原文地址: https://www.cveoy.top/t/topic/pTHc 著作权归作者所有。请勿转载和采集!