Как получить данные с сервера (PHP) с помощью RPC в формате json в Android - PullRequest
2 голосов
/ 20 июня 2011

Я новичок в Android. Я пытаюсь сделать RPC для получения данных из PHP и получить в формате JSON. Все идет хорошо, но я не получаю никаких данных в ответ. Сильфон мой код Android

Код Android

try{
    HttpClient httpClient = new DefaultHttpClient();


    JSONObject jsonRequest = new JSONObject(); 
    jsonRequest.put("id", 0); 
    jsonRequest.put("method", "getData"); 


    HttpEntity entity = new StringEntity(jsonRequest.toString()); 
    HttpPost request = new HttpPost("http://121.247.130.30:8080/test/TestJava.php");
    request.setEntity(entity); 
    HttpResponse response = httpClient.execute(request); 
    String temp = EntityUtils.toString(response.getEntity());
    Log.e("Class====","Error:"+temp);
   }
   catch(Exception e){
       Log.e("Class====","Error:"+e.getMessage());
   }

PHP-код

<?php
class TestJava
{
public function getData()  
{  
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
} 
}
?>

Пожалуйста, дайте мне знать, если я что-то здесь сделал

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Я думаю, вы неправильно использовали элемент сущности.Проверьте, что у меня есть в моем коде:

StatusLine statusLine = response.getStatusLine();

if(statusLine.getStatusCode() == HttpStatus.SC_OK ){

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    response.getEntity().writeTo(out);
    response.getEntity().consumeContent();
    out.close();
    return out.toString();

}
0 голосов
/ 29 июня 2011

Я немного удивлен, как вы можете получить любую информацию из этого сценария php.Этот скрипт ничего не выводит.Попробуйте это так:

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>

Вторая «странная» вещь - ваш способ получения данных в вашем приложении.Вы должны читать входной поток вместо записи в выходной поток ... Или я что-то полностью пропустил?!

...