Когда истекает время ожидания URLConnection, попробуйте подключиться еще два раза, прежде чем изменить URL-адрес и повторите попытку - PullRequest
0 голосов
/ 08 ноября 2011

Мне нужно попробовать подключиться к URL в строке request_url.Если истекает время ожидания соединения, мне нужно повторить еще 2 раза, прежде чем вызывать другой URL (ans.getUrl(2)) и повторить ту же логику.Вот мой фрагмент кода.Может ли кто-нибудь помочь мне с логикой, которую я должен использовать здесь?

        //ans.getUrl returns a url based on the int parameter you send. It can only be 1 and 2.
       String request_url= ans.getUrl(1);
        try {
                    URL url;
                    URLConnection urlConn;
                    DataInputStream input;

                    //URL Creation:
                    url = new URL(request_url);


                    // URL connection channel.
                    urlConn = url.openConnection();

                    urlConn.setConnectTimeout(2000);

                    urlConn.setDoInput(true);

                    urlConn.setDoOutput(true);

                    urlConn.setUseCaches(false);



                    // Get response data.


                    input = new DataInputStream(urlConn.getInputStream());

                    String str;
                    System.out.println("Response XML::: ");

                    while (null != ((str = input.readLine()))) {
                        System.out.println("XML:: "+str);
                        //Write to temp file for parsing
                        FileWriter fstream = new FileWriter("response.xml", true);
                        BufferedWriter out = new BufferedWriter(fstream);
                        out.write(str+"\n");
                        //Close the output stream
                        out.close();

                    }
                    //Close input
                    input.close();


                } catch (FileNotFoundException e) {
                    System.err.println("FileNotFoundException: "
                            + e.getMessage());
                } catch (IOException e) {
                    System.err.println("Caught IOException: "
                            + e.getMessage());
                }

1 Ответ

0 голосов
/ 08 ноября 2011

Я бы обернул весь код, который вы опубликовали в функции, а затем применил цикл повторения вокруг этой функции. Для этого вам нужно разрешить распространение исключения подключения.

...