0

我有以下用于连接到 url 的代码。我的问题是,当我在调试中运行它时,我看到了这一点,connected = false并且我尝试设置的其他参数都没有工作(例如timeout)。谁能帮我这个?我究竟做错了什么??

在有人问之前,我的清单有互联网许可。

private static class SyncOperation extends AsyncTask<String, String, Integer> {

    @Override
    protected Integer doInBackground(String... params) {
        HttpsURLConnection urlConnection = null;
        URL url = null;
        String msg = "Good";
        int code = 0;
        try {
            System.setProperty("http.keepAlive", "false");
            url = new URL("https://www.google.com");
            urlConnection =  (HttpsURLConnection) url.openConnection();
            urlConnection.setInstanceFollowRedirects(false);
            urlConnection.setReadTimeout(10000 /* milliseconds */);
            urlConnection.setConnectTimeout(15000 /* milliseconds */);
            urlConnection.setRequestMethod("POST");
        } catch (MalformedURLException e) {
            msg = "Bad MalformedURLException";
            e.printStackTrace();
            Log.e("HTTPS", e.getMessage());
        } catch (IOException e) {
            msg = "Bad IOException";
            e.printStackTrace();
            Log.e("HTTPS", e.getMessage());
        } finally {
            urlConnection.disconnect();
            Log.d("HTTPS", msg);
            Log.d("HTTPS", "diconnected");
        }

        return code;
    }

    @Override
    protected void onPostExecute(Integer code) {
        super.onPostExecute(code);

        Toast t = Toast.makeText(mContext, code.toString(), Toast.LENGTH_SHORT);
        t.show();

    }

}
4

1 回答 1

2

你只是在配置你的连接,但你没有连接它。该方法的名称具有url.openConnection()误导性:它不打开连接。它只给你一个连接对象,最初没有连接。

您需要调用任何导致连接连接的方法,例如connect()

换句话说,尝试对你的连接做一些实际的事情,比如阅读内容并将其写入System.out.println(). 这将自动打开连接。

于 2013-04-29T15:35:58.233 回答