【问题标题】:Detecting error 429 while loading a URL加载 URL 时检测到错误 429
【发布时间】:2017-09-04 11:19:43
【问题描述】:

我对 Java 还是很陌生,在任何地方都找不到正确的答案,所以: 我正在尝试检查加载的 URL 是否由于错误或更具体的错误 429(请求过多)而无法加载。

我正在使用这个从 URL 获取数据:

String finalLine = null;
    URL oracle = new URL(url);
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        finalLine = inputLine;
    in.close();
    return finalLine;

实际上效果很好,之后我使用 GSON 来解析它。

当它不起作用时,我正在开发的游戏就会崩溃。所以我想编写一个 if 函数或处理错误并相应地做一些事情的东西。

有合适的方法吗?谢谢!

【问题讨论】:

    标签: java eclipse url


    【解决方案1】:

    如果这是您的意思,您可以尝试使用HttpURLConnection#getResponseCode() 检查响应代码。

    URL oracle = new URL("http://httpstat.us/429"); // url whose response code is 429
    HttpURLConnection openConnection = (HttpURLConnection) oracle.openConnection();
    
    if (openConnection.getResponseCode() == 429) {
        System.out.println("Too many request");
    } else {
        System.out.println("ok");
    }
    
    openConnection.disconnect();
    

    【讨论】:

    • Get 我也用这个来获取页面的内容?
    • 是的。与其从URL 实例获取输入流,不如使用HttpURLConnection 实例的getInputStream() 方法获取它。
    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 2012-10-24
    • 2019-10-23
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多