gpt4 book ai didi

java - 如何通过 java.net.URL 捕获 HTTP 错误

转载 作者:行者123 更新时间:2023-11-30 07:10:08 24 4
gpt4 key购买 nike

我有一个小代码片段,我在其中打开一个带有一些图片的文件管理器的 URLStream。

如果我可以从运行代码的目的地访问此文件管理器,则代码可以正常工作。但是,如果我在无法访问文件管理器的地方运行代码,代码将无法运行。但是我在代码中没有发现任何错误!代码工作正常,并在未找到图像时抛出自定义异常。

那么我怎样才能捕捉到任何(或只是 401)HTTP 错误呢?拜托,我知道如何授权通话,但我不想这样做。我只想处理 HTTP 错误。

这是我的代码片段:

(...)
URL url = new URL("http://filer.example.com/pictures/" + list.get(0) + ".jpg");
IputStream in = new BufferedInputStream(url.openStream());
(...)

最佳答案

你这样做的方式是较长形式的快捷方式:

URL url = new URL("http://filer.example.com/pictures/" + list.get(0) + ".jpg");
URLConnection connection = url.openConnection();
connection.connect();
InputStream in = connection.getInputStream();

在 HTTP 的情况下,您可以安全地将 URLConnection 转换为 HttpURLConnection 以访问与协议(protocol)相关的内容:

URL url = new URL("http://filer.example.com/pictures/" + list.get(0) + ".jpg");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.connect();
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// everything ok
InputStream in = connection.getInputStream();
// process stream
} else {
// possibly error
}

关于java - 如何通过 java.net.URL 捕获 HTTP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com