3 行のテキストを返す web サーバー上の php スクリプトに get 要求を送信します。サーバーからの応答を次のように処理します。
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
次のような行を解析するよりも:
line = "";
while ((line = rd.readLine()) != null) {
String a = line.substring(0, line.indexOf('_'));
String b = line.substring(line.indexOf('_') + 1);
}
そして、これは StringIndexOutOfBounds 例外をスローし続け、その理由が本当にわかりません。私はすでにプロジェクトの他の場所で同様の方法を使用しており (別の PHP スクリプトが別の行のテキストを返し、別の解析を使用して)、完全に正常に動作します。返された行をログに記録して、サーバーから適切に返されたかどうかを確認すると、PHP スクリプトが送信する行と同じです。
そして、ここが楽しい部分です。私がかなり絶望的になったとき、私は以下を使用して線を測定しようとしました:
int l = line.length();
これは私の行で11を返しました。以下を使用して何かを表示しようとしたときよりも:
line.charAt(5);
それは StringIndexOutOfBoundsException: 5 をスローしました。これの何が問題なのか本当にわかりません。誰にもアイデアはありますか?ありがとう!
編集
これはPHPスクリプトです
$query = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($query)) {
print("{$row['id']}\n{$row['number']}\n");
}
これは私のJavaコードです:
while ((line = rd.readLine()) != null) {
Log.v("connection - user list", line); //This line logs: 1_485963
//But this doesent work
String a = line.substring(0, line.indexOf('_'));
String b = line.substring(line.indexOf('_') + 1);
}