首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LoopJ AndroidAsyncHttp检索值

使用LoopJ AndroidAsyncHttp检索值
EN

Stack Overflow用户
提问于 2014-05-03 13:03:44
回答 1查看 1.6K关注 0票数 0

我刚刚开始使用LoopJ AndroidAsyncHttp库及其出色的数据上传。

但是,我现在正试图使用get请求获得响应,我似乎不明白为什么我的onSuccess和onFailure方法都没有被调用。我在这里仔细研究了这些问题,似乎找不到一个问题来解决onSuccess方法的新实现。有人能帮忙吗?

方法在ButtonClick上被调用:

代码语言:javascript
复制
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代码(在chrome上使用Postman客户端很好,我已经在EDIT2中发布了输出):

代码语言:javascript
复制
<?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做同样的事情,但这也不起作用。真希望得到答案!

编辑:添加有效的代码,并在相同的活动中完美地工作。这是员额请求:

代码语言:javascript
复制
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:从php页面返回到POSTMAN客户端的响应:

{"id":"7“、”路径“:”上载/快速.path“}、{"id":"8”、“路径”:“上载/取消标题.path”}、{"id":"9“、”路径“:”上载/未标题.path“}、{"id":"10”、“路径”:“uploadsspeed_2.png”}、{"id":"11“、”路径“:”上载/速度_3.png“}}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-03 14:15:34

看起来您的服务器正在返回一个JSON数组,因此您应该尝试在您的onSuccess(JSONArray数组)方法中重写该方法。

代码语言:javascript
复制
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...
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23444800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档