Использование LoopJ AndroidAsyncHttp для получения значений

Я только начал использовать библиотеку LoopJ AndroidAsyncHttp, и она отлично подходит для загрузки данных.

Однако сейчас я пытаюсь получить ответ, используя запрос на получение, и я не могу понять, почему не вызываются ни мои методы onSuccess, ни мои методы onFailure. Я просмотрел вопросы здесь и не могу найти тот, который касается новых реализаций методов onSuccess. Может ли кто-нибудь помочь?

Метод, вызываемый для ButtonClick:

public void displayUploaded(View view){

    RequestParams params=new RequestParams();


    try{


        AsyncHttpClient client = new AsyncHttpClient();

        client.get("http://192.168.1.4/clientservertest/returnUploadedImages.php",
                    new JsonHttpResponseHandler() {

                    @Override
                    public void onSuccess(JSONObject jsonObject) {
                    // Display a "Toast" message

                    Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();


                    Log.d("android", jsonObject.toString());
                    }

                    @Override
                    public void onFailure(int statusCode, Throwable throwable, JSONObject error) {
                    // Display a "Toast" message

                    Toast.makeText(getApplicationContext(), "Error: " + statusCode + " " + throwable.getMessage(), Toast.LENGTH_LONG).show();

                    // Log error message
                    // to help solve any problems
                     Log.e("android", statusCode + " " + throwable.getMessage());
                     }
                     });




    }
    catch(Exception e){
        Toast toast2=Toast.makeText(getApplicationContext(),"Failed first TRY",Toast.LENGTH_LONG);
        toast2.show();
        e.printStackTrace();
    }


}

Это мой php-код (который отлично работает с использованием Postman Client в chrome, я опубликовал вывод в EDIT2):

<?php 

        #Connect to Database 
        $con = mysqli_connect("localhost","root","", "mytestdatabase"); 

        #Check connection 
        if (mysqli_connect_errno()) { 
            echo 'Database connection error: ' . mysqli_connect_error(); 
            exit(); 
        } 


        #Query the database to get the user details. 
        $userdetails = mysqli_query($con, "SELECT * FROM images"); 

        #If no data was returned, check for any SQL errors 
        if (!$userdetails) { 
            echo 'Could not run query: ' . mysqli_error($con); 
            exit; 
        } 

        #Return the results
        $rows = array();
        while($r = mysqli_fetch_assoc($userdetails)) {
            $rows[] = $r;
        } 


        print(json_encode($rows));  

?>

Я также пробовал то же самое, используя другие ResponseHandlers, но это тоже не работает. Очень надеюсь на ответ!

РЕДАКТИРОВАТЬ: Добавление кода, который действителен и отлично работает в том же действии. Это почтовый запрос:

File selectedPicture=new File(picturePath);

        RequestParams params=new RequestParams();

        try{

           params.put("UploadedPic",selectedPicture);
           AsyncHttpClient client = new AsyncHttpClient();
           client.post("http://192.168.1.4/clientservertest/imageupload.php", params,new AsyncHttpResponseHandler());

        }

EDIT2: ответ возвращается клиенту POSTMAN со страницы php:

[{"id":"7","path":"uploads/speed.png"},{"id":"8","path":"uploads/Untitled.png"},{"id": "9","path":"uploads/Untitled.png"},{"id":"10","path":"uploadsspeed_2.png"},{"id":"11","path": "загрузки/скорость_3.png"}]


person RohanC    schedule 03.05.2014    source источник
comment
Можете ли вы получить доступ к URL-адресу из браузера, работающего на устройстве Android?   -  person Matt O    schedule 03.05.2014
comment
измените свой URL-адрес с помощью этого 192.168.1.4/clientservertest/returnUploadedImages.php на localhost://192.168 .1.4/clientservertest/returnUploadedImages.php   -  person Amardeepvijay    schedule 03.05.2014
comment
@MattO, @Amardeep Я сомневаюсь, что это проблема с URL-адресом, поскольку аналогичный код работает у меня в том же действии. Смотрите мое редактирование для рабочего кода.   -  person RohanC    schedule 03.05.2014


Ответы (1)


Похоже, ваш сервер возвращает массив JSON, поэтому вам следует попробовать переопределить метод onSuccess(массив JSONArray) в вашем JsonHttpResponseHandler.

client.get("http://192.168.1.4/clientservertest/returnUploadedImages.php",
    new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(JSONArray jsonArray) {
            Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_LONG).show();
            Log.d("android", jsonArray.toString());
        }
        //etc...
    });
person Matt O    schedule 03.05.2014