0

HttpUrlConnectionに問題があります。デバイス(Gingerbread HTC Desire)を実行すると、LogCatは非常に一般的なものを表示します。

11-23 14:26:19.394: WARN/System.err(6591): java.io.IOException: Error connecting

問題を解決するためにAsyncTaskを追加しましたが、違いはないようです。一番下に完全なlogcatを示しました。これが問題のクラスです(少し短くして、URLをgoogleに設定します(同じ結果):

public class JSoupHelper {
    private static final String LOGIN_URL = "http://www.google.co.uk";

    public JSoupHelper() {
        new Login().execute(LOGIN_URL);
    }
    private class Login extends AsyncTask<String, String, InputStream>{
        @Override
        protected InputStream doInBackground(String... params) {
            String url = params[0];
            Log.d("JSoup-LoginHelper","Starting background AsyncTask on "+url);
            try {
                InputStream is = OpenHttpConnection(url);
                return is;
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
     private InputStream OpenHttpConnection(String urlString) throws IOException {
        InputStream in = null;
        URL url = new URL(urlString);
        Log.d("JSoup-OHTTPSC","Connecting to "+urlString);
        try{
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setInstanceFollowRedirects(true);
            conn.setDoInput(true);
            conn.connect();
            Log.d("JSoup-OHTTPSC","Connected to "+urlString);

            int response = conn.getResponseCode();
            if (response == HttpsURLConnection.HTTP_OK) {
                in = conn.getInputStream();
            }
            conn.disconnect();
        }
        catch (Exception ex)
        {
            throw new IOException("Error connecting");
        }
        return in;
    }
}

LOGCAT:

11-23 14:25:59.214: DEBUG/JSoup-LoginHelper(6591): Starting background AsyncTask on http://www.google.co.uk
11-23 14:25:59.234: DEBUG/JSoup-OHTTPSC(6591): Connecting to http://www.google.co.uk
           ~~~~ 20 secs pass ~~~~
11-23 14:26:19.394: WARN/System.err(6591): java.io.IOException: Error connecting
11-23 14:26:19.394: WARN/System.err(6591): at com.example.untitled1.JSoupHelper.OpenHttpsConnection(JSoupHelper.java:67)
11-23 14:26:19.394: WARN/System.err(6591): at com.example.untitled1.JSoupHelper.access$100(JSoupHelper.java:12)
11-23 14:26:19.394: WARN/System.err(6591): at com.example.untitled1.JSoupHelper$Login.doInBackground(JSoupHelper.java:40)
11-23 14:26:19.394: WARN/System.err(6591): at com.example.untitled1.JSoupHelper$Login.doInBackground(JSoupHelper.java:34)
11-23 14:26:19.394: WARN/System.err(6591): at android.os.AsyncTask$2.call(AsyncTask.java)
11-23 14:26:19.394: WARN/System.err(6591): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
11-23 14:26:19.394: WARN/System.err(6591): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
11-23 14:26:19.394: WARN/System.err(6591): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
11-23 14:26:19.394: WARN/System.err(6591): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
11-23 14:26:19.394: WARN/System.err(6591): at java.lang.Thread.run(Thread.java:1027)
11-23 14:26:23.077: INFO/htcfs-main(6749): main()

ここでの私の目標は、実際にInputStreamを取得し、HttpsUrlConnectionを介してJSoupを使用して解析し、postを使用してログインし、Cookieとセッション変数を保存してから、Cookieを使用して、Webサイトを適切にスクレイピングし、結果をSqlitedbに保存することです。 ...しかし、一度に1ステップずつ(特に、デバッグスキルと一般的なJavaスキルが不足している場合)。

前もって感謝します。

4

0 に答える 0