这段代码在java中完美运行,但不是我的android

时间:2017-03-14 12:50:50

标签: android urlconnection

我在主线程中用onCreate方法调用它。

        StringBuilder content = new StringBuilder();
        try
        {
            URL url = new URL("http://alvinalexander.com/blog/post/java/java-how-read-from-url-string-text");

            URLConnection urlConnection = url.openConnection();

            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

            String line;
            while ((line = bufferedReader.readLine()) != null)
            {
                content.append(line + "\n");
            }
            bufferedReader.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }

        Log.d("rwj", content.toString());

1 个答案:

答案 0 :(得分:0)

我在Asynctask中尝试了很多代码并且它有效,我猜网络操作无法在主 UI线程中完成。

class RetrieveFeedTask extends AsyncTask<String, Void, String>
{

    private Exception exception;
    StringBuilder content = new StringBuilder();

    protected String doInBackground(String... urls) {
        try
        {
            // create a url object
            URL url = new URL("http://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1");

            // create a urlconnection object
            URLConnection urlConnection = url.openConnection();

            // wrap the urlconnection in a bufferedreader
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

            String line;

            // read from the urlconnection via the bufferedreader
            while ((line = bufferedReader.readLine()) != null)
            {
                content.append(line + "\n");
            }
            bufferedReader.close();
        }
        catch(Exception e)
        {
            Log.d("myerr", e.toString());
        }

        return content.toString();
    }

    protected void onPostExecute(String result) {
        Log.d("myresut", result.toString());
    }
}