gpt4 book ai didi

java - HttpURLConnection#getResponseCode() 导致 FileNotFoundException

转载 作者:行者123 更新时间:2023-12-02 10:55:49 25 4
gpt4 key购买 nike

我目前正在尝试访问位于 https://fnbr.co/api/shop 下的 Web API(不是我的) .

我正在运行的代码基本上是这样的:

URL url = new URL("https://fnbr.co/api/shop");

HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.flush();

System.out.println(conn.getResponseCode()); // second error

BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream())); // first error

// read from this reader

控制台输出(响应代码)为

404

FileNotFoundException: https://fnbr.co/api/shop

在带有 conn.getInputStream() 和另一个的行

FileNotFoundException: https://fnbr.co/api/shop

conn.getResponseCode() 行中

我的问题出在哪里(因为 404 应该意味着该文件不存在,但我可以通过浏览器访问它)?

最佳答案

HTTP 404 表示请求的 URL 不存在。这意味着在您的情况下, GET https://fnbr.co/api/shop 后面没有任何内容。地址。也许您需要使用不同的协议(protocol),如 PUT、POST 等:

404 Not Found The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.

Here是HTTP响应代码的官方描述。

您需要处理客户端代码中的错误,例如 HTTP 404,以便您可以在返回 HTTP 200 时读取响应(请记住,它不是文件,而是请求响应!),如下所示:

if (conn.getResponseCode() == 200) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
}

关于java - HttpURLConnection#getResponseCode() 导致 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51763386/

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