0

私は次のコードを持っています:

try{
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();

            /* Get the XMLReader of the SAXParser we created. */
            XMLReader r = sp.getXMLReader();

            //This handles the xml and populates the entries array
            XMLHandler handler = new XMLHandler();


            // register event handlers
            r.setContentHandler(handler);
            String url = "http://news.library.ryerson.ca/api/isbnsearch.php?isbn="+ISBN;
            r.parse(url);

            return handler.getEntries();
        }

このコードはほとんどの場合正常に機能しますが、ユーザーが100以上の関連ISBN(たとえば、ハリーポッターなど)を含む人気のある本のisbnを入力できる場合がいくつかあります。その場合、XMLフィードは中断されませんが、読み込みに時間がかかります(極端な場合は、最大30秒以上かかる可能性があります)。ページの読み込み中は、接続が切断されることはなく、読み込みに時間がかかるだけです。

関数のタイムアウト時間を増やす方法はありますか?

ありがとう

4

1 に答える 1

1
//opens the URL as a stream, so it does not timeout prematurely
String u = new String("http://foobar/isbnsearch.php?isbn="+ISBN);
URL url = new URL(u);
InputStream stream = url.openStream();

r.parse(new InputSource(stream));
stream.close();

これをに追加して、これを自分で解決しました。

于 2010-07-30T15:05:19.593 に答える