0

これに関して多くの質問が寄せられていることは認識していますが、混乱しており、問題の解決策を見つけることができません。

私はmysqlサーバーからデータを読み取るphpのWebサービスを持っています。次のコードは、Web サービス スクリプトです。

<?php
$username = "XXXXX";
$password = "XXXXX";
$hostname = "localhost"; 

$response=array();

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL");


//select a database to work with
$selected = mysql_select_db("test",$dbhandle) 
or die("Could not select test");

//execute the SQL query and return records
$result = mysql_query("SELECT name, country FROM android");

$response["infos"] = array();

while ($row = mysql_fetch_assoc($result)) {

    $info = array();
    $info["name"]=$row["name"];
    $info["country"]=$row["country"];

    echo json_encode($info);
    }

 //close the connection  
 mysql_close($dbhandle); 
  ?>

これにより、Web ブラウザーに次の出力が表示されます。この " http://localhost/test.php " {"name":"taz","country":"aus"}{"name":"fufu", "country":"tutu"}{"name":"chikaka","country":"aceVentura"}

Android アプリケーションに次のクラスがあります。非常に単純なクラスですが、HttpResponse の実行時に例外エラーを返します。

 public static final String URL = "http://192.168.0.5//test.php";

 public static String connect(){

    try{
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(URL);
        HttpResponse response = httpClient.execute(httpGet);

        String result = "";
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while((line = reader.readLine()) != null){
            str.append(line + "\n");
        }
        in.close();
        result = str.toString();

        return result;
     } catch (Exception e) {
        return "Error: " + e.getMessage();
     }
  }

このメソッドは、応答を出力するために mainActivity クラスで呼び出されます。私が間違っていることを教えてください。

4

2 に答える 2

0

InputStreamを読み取る前に、まず応答ステータスを読んでください。

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == HttpStatus.SC_OK) {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        return entity.getContent();
    }
}
于 2012-12-18T12:43:51.960 に答える
0

申し訳ありませんが、私は解決策を見つけました。私はとても愚かでした。場所を移動しましたが、サーバー アドレスが変更されたことに気づきませんでした。

それにもかかわらず、助けてくれてありがとう

于 2012-12-19T00:26:16.430 に答える