2013-02-20 3 views
0

У меня есть приложение andoird, я хочу, чтобы результат вернулся к моему андроидному текстуру. Я тестирую его в браузере и да результат показал, но он ничего не возвращает в мое приложение для Android.Объект Json не возвращается с сервера XAMPP

Следующий код - это мой php-файл.

<?php 

$accounts = mysql_connect("localhost","user123","1234") 
or die (mysql_error()); 

mysql_select_db("user123",$accounts); 


if(isset($_GET["id"])){ 
    $id = $_GET['id']; 

    $result = mysql_query("SELECT * FROM table123 WHERE id = $id"); 

    if($result != null){ 
     $result = mysql_fetch_array($result); 
     $user = array(); 
     $user["username"] = $result["username"]; 
     $user["password"] = $result["password"]; 


     echo json_encode($user); 
    }else{ 

    } 
}else{ 

    $user["username"] = "not found"; 
    $user["password"] = null; 
    echo json_encode($user); 
} 

?> 

После кода браузер результат

{"username":"not found","password":null} 

Даже результат не найден, он должен вернуть $ пользователю показать мне «не найден». Невозможно ничего не вернуть в поток. Я тестировал его в своем браузере и да, он вернул мне $ user. Что-то не так с моим кодом?

+0

на локальном хосте, попробуйте вместо этого установить IPadress вашего ПК. – Bigflow

+0

Я использую эмулятор Android, и я использую ip-адрес 10.0.2.2. Я не думаю, что с моим ip-адресом что-то не так, как я тестировал в другом проекте – edisonthk

+0

Я бы все же попробовал это вместо использования localhost. Я знаю, что была ошибка с использованием localhost вместо 10.0.2.2, и вы не делаете ошибку logcat? – Bigflow

ответ

1

Там нет ничего плохого в мой исходный PHP код. Я получил это работает после того, как я заменяю следующий код

HttpClient httpClient = new DefaultHttpClient(); 

в

DefaultHttpClient httpClient = new DefaultHttpClient(); 

И все работало.

1

Заменить "localhost" с "10.0.2.2"

И добавьте эту строку в манифесте:

<uses-permission android:name="android.permission.INTERNET" /> 

Если вы используете Android 3.0 или выше (в этом случае вы делаете). Затем замените эмулятор на 2.3.3, если это возможно, затем попробуйте снова запустить код.
или
Добавьте эти строки в код:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
StrictMode.setThreadPolicy(policy); 
+0

Я добавил, но он все тот же, doesn Не работай. – edisonthk

+0

@edisonTHK сохранить строку разрешений в вашем файле, вы тоже должны иметь это, и я обновил ответ. Этот ответ также может решить проблему вашего вчерашнего вопроса. – Bigflow

Смежные вопросы