[Android]Android5.0でHttpURLConnection::getInputStream()でデータ取得できません

Android5.0以降で確認した現象で、HttpURLConnection::getInputStream()で取得したInputStreamからデータを読み込もうとしたが、何も取得できなかった。Android4,Android3は問題ございません。

// 接続する
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("X-NO1S-MEDIA", "1"); 
        connection.setConnectTimeout(10*1000);
        connection.setReadTimeout(10*3000);
        connection.setDoOutput(true);
        connection.setFixedLengthStreamingMode(0);       
        connection.connect();

        InputStream is = connection.getInputStream();
        BufferedReader reader = new BufferedReader( new InputStreamReader(is)); 
        String line;

        if(is.available() >= 1){
            while ((line = reader.readLine()) != null) { 
                jsonStr.append(line);
            } 
            is.close();
            jsonValue = jsonStr.toString();

                            ...
2015-02-04 15:03 コメント
已邀请:
0

iQi - 面白いアプリを開発中

{ 賛成 }:

Android 5.0では、available()は0になってしまうなので、InputStreamからデータを取得する際には、available()は期待しないようにする必要あります。

修正内容は↓

if(is.available() >= 0){
2015-02-04 15:06 コメント

ログインまたは登録してから回答してください

EXIT フルスクリーンモード 回答