1

我有个问题!我有一个与数据库连接的php页面连接,该方法在Froyo上运行良好,但不适用于较新版本的Android。问题是什么?

        public static String interact(String request){
            String result="test";
        String site = "http://xxxx.net:nnn/xxx";
        URL url = new URL(site);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setRequestMethod("POST");
        connection.setDoOutput(true);
        connection.connect();

        OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
        wr.write(request);
        wr.flush();
        wr.close();

        Scanner in = new Scanner(connection.getInputStream());
        while(in.hasNextLine())
        result+=in.nextLine();
        connection.disconnect();
        return result;

    }
    catch (UnknownHostException e) {
        return e.getMessage();
    } catch (IOException ex) {
        return ex.getMessage();
    }
    catch (Exception ex){
        return ex.getMessage();
    }

}   

我需要发送数据并获得响应,但它只会在比 2.2 更新的 Android 上给我 null。

4

2 回答 2

4

您正在Network Request主线程上运行。

Android >=3.0 不允许这样做。你需要使用AsyncTask来调用Network Request

于 2012-11-27T19:12:27.897 回答
0

是的,低于 3.0 的版本不允许这样做。但是,您可以通过一些设置绕过来覆盖规则,但至少不要这样做,因为它可能会给您带来应用程序崩溃。

我建议提高你的 min-SDK 级别。

于 2014-11-24T08:53:49.757 回答