首页 > 解决方案 > 如何循环通过 java.io 异常 (502)?

问题描述

我收到此错误:java.io.IOException: Server returned HTTP response code: 502 for URL:

如果网站有一个坏门,它会结束我的程序,并且它是否工作不一致。有什么办法可以强制它继续重试网站,直到它得到响应?

如果重要的话,这是我目前的代码:

    URL webpage = null;
    URLConnection conn = null;
    try{
        webpage = new URL(websiteurl);
        conn=webpage.openConnection();
        InputStreamReader reader = new InputStreamReader(conn.getInputStream(), "UTF8");
        BufferedReader buffer = new BufferedReader(reader);
        String line = "";
        while(true){
            line = buffer.readLine();
            if(line!=null){
               System.out.println(line);
            }
            else
                break;
        }
    }
    catch(Exception e){
        e.printStackTrace();
    }

nevermind 通过在 catch 中调用我的方法并在每次调用之间添加暂停来解决它:这就是现在的样子

URL webpage = null;
            URLConnection conn = null;
            try{
                webpage = new URL(website);
                
                conn=webpage.openConnection();
                InputStreamReader reader = new InputStreamReader(conn.getInputStream(), "UTF8");
                BufferedReader buffer = new BufferedReader(reader);
                String line = "";
                while(true){
                    line = buffer.readLine();
                    if(line!=null){
                       System.out.println(line);
                    }
                    else
                        break;
                }
            }
            catch(Exception e){
                e.printStackTrace();
                 try
            {
                Thread.sleep(5000);
            }
            catch(InterruptedException ex)
            {
                Thread.currentThread().interrupt();
            }
                findCreationDate(name);
            }

标签: java

解决方案


通过在 catch 中调用我的方法并在每次调用之间添加暂停来解决它:这就是现在的样子

URL webpage = null;
            URLConnection conn = null;
            try{
                webpage = new URL(website);
                
                conn=webpage.openConnection();
                InputStreamReader reader = new InputStreamReader(conn.getInputStream(), "UTF8");
                BufferedReader buffer = new BufferedReader(reader);
                String line = "";
                while(true){
                    line = buffer.readLine();
                    if(line!=null){
                       System.out.println(line);
                    }
                    else
                        break;
                }
            }
            catch(Exception e){
                e.printStackTrace();
                 try
            {
                Thread.sleep(5000);
            }
            catch(InterruptedException ex)
            {
                Thread.currentThread().interrupt();
            }
                findCreationDate(name);
            }

推荐阅读