android - 使用Loopj的GET请求

时间:2015-07-19 22:08:32

标签: android json http get loopj

我需要对包含JSON数据的url进行GET请求,并尝试使用Loopj库,但它什么都没有返回。我试图在互联网上找到例子,但结果可能是过时的(onSuccess方法有不同的参数)。我试图让我的代码适应那个例子和我得到的东西:

String AllData=""; AsyncHttpClient client = new AsyncHttpClient();
    client.get("wantedUrl", new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            for (byte aResponseBody : responseBody) {
                AllData += aResponseBody;
            }

        }
        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
            Toast.makeText(getApplicationContext(),"We got an error",Toast.LENGTH_SHORT).show();
        }
    });

" wantedUrl"是json的网址,但" AllData"仍然是空的。如何解决?

1 个答案:

答案 0 :(得分:0)

您需要AsyncHttpResponseHandler才能获得JsonHttpResponseHandler回调。使用下面的代码来确保正常运行。

 String AllData=""; AsyncHttpClient client = new AsyncHttpClient();
        client.get("wantedUrl", new JsonHttpResponseHandler(){
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                super.onSuccess(statusCode, headers, response);

                //Here response will be received in form of JSONArray
            }

            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                super.onSuccess(statusCode, headers, response);

                //Here response will be received in form of JSONObject
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                super.onFailure(statusCode, headers, responseString, throwable);
                Toast.makeText(getApplicationContext(), "We got an error", Toast.LENGTH_SHORT).show();
            }
        });