5

Jsoup の基本を理解するのに少し助けが必要です。次のコードは機能しますが、何らかの方法で接続を閉じる必要があるかどうか疑問に思っています。Jsoup Web サイトでそれに関する情報が見つかりません。do in background メソッドが実行された後もアプリケーションが変更されない場合、log cat に 5 分ごとに "request time failed: java.net.SocketException: Address family not supported by protocol" というメッセージが表示されます。そのため、不必要にデータを消費しないようにしたいと考えています。ありがとうございました。

            protected String doInBackground(String... params) {
        // TODO Auto-generated method stub
        try {
        //  connect to web page based on user input
            Document doc = Jsoup.connect(routeURL).get();


        //  select relevant page elements
            Elements fareStageNumbers = doc.getElementsByClass("fare_stages_inner_table");

       //   test printing out fare stage numbers
            for(Element div : fareStageNumbers){

                Log.v(TAG, div.text());

            }



        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

logcat メッセージ:

    01-12 20:58:28.755: D/SntpClient(78): request time failed: java.net.SocketException: Address family not supported by protocol
    01-12 21:03:28.765: D/SntpClient(78): request time failed: java.net.SocketException: Address family not supported by protocol
    01-12 21:08:28.775: D/SntpClient(78): request time failed: java.net.SocketException: Address family not supported by protocol
4

1 に答える 1

9

リクエストが完了した後、Jsoup は独自に接続を閉じます。

// from 'org.jsoup.helper.HttpConnection' class
static HttpConnection.Response execute(Connection.Request req, HttpConnection.Response previousResponse) throws IOException {
    // ...
    HttpURLConnection conn = createConnection(req);
    HttpConnection.Response res;
    try {
        // ...
    } finally {
        // per Java's documentation, this is not necessary, and precludes keepalives. However in practise,
        // connection errors will not be released quickly enough and can cause a too many open files error.
        conn.disconnect();
    }
    // ...
}

例外: URL にプロトコルが含まれていますか (URL は eg. で始まりますhttp://)?

于 2013-01-13T19:14:39.703 に答える