2015-07-19 68 views
0

我需要对包含JSON数据的url进行GET请求,并尝试使用Loopj库,但它不返回任何内容。我试图找到互联网上的例子,但他们证明,也许,是过时的(onSuccess方法有不同的参数)。我想我的代码适应那个例子,我得到了什么:android-GET请求与Loopj

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”保持为空。如何解决它?

回答

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(); 
      } 
     }); 
+0

它的工作原理,但如何将响应记录到活动类的变量? (我声明它是一个“公共静态”来访问它的onSuccess方法,但在上述构造之外它有它以前的价值(但在onSuccess一切都很好 - 我用相同的吐司测试它) –

+0

@JustinMcGuire你需要学习JAVA的基本概念没有攻击 –

+0

我知道我有点新手,但无论如何,我需要将响应数据记录到数组中以扩充ListView - 那么我能做到这一点的方式是什么? –