[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();
...
0
iQi - 面白いアプリを開発中
Android 5.0では、available()は0になってしまうなので、InputStreamからデータを取得する際には、available()は期待しないようにする必要あります。
修正内容は↓
修正内容は↓
if(is.available() >= 0){