通常、Android開発ではサーバーの応答からデータを取得します。
/*
* get server response inputStream
*/
InputStream responseInputStream;
解決策1:複数の読み取りによって応答文字列を取得します。
/*
* get server response string
*/
StringBuffer responseString = new StringBuffer();
responseInputStream = new InputStreamReader(conn.getInputStream(),"UTF-8");
char[] charBuffer = new char[bufferSize];
int _postion = 0;
while ((_postion=responseInputStream.read(charBuffer)) > -1) {
responseString.append(charBuffer,0,_postion);
}
responseInputStream.close();
解決策2:1回だけ読み取り応答を取得します。
String responseString = null;
int content_length=1024;
// we can get content length from response header, here assign 1024 for simple.
responseInputStream = new InputStreamReader(conn.getInputStream(),"UTF-8");
char[] charBuffer = new char[content_length];
int _postion = 0;
int position = responseInputStream.read(charBuffer)
if(position>-1){
responseString = new String(charBuffer,0,position );
}
responseInputStream.close();
パフォーマンスが優れているソリューションはどれですか?なぜ?
注:1Mバイト未満のサーバー応答json形式のデータ。