2016-03-21 20 views
0

私はrestful API 問題にリクエストを送信するためにAsyncHttpClientを使用していますこんにちは、私はonSuccessに結果を持っているし、私の活動には、このメソッドを持っているクラスから、それを通過したいですアンドロイドAsyncHttpClient応答を取得

public int send(JSONObject parameters,String email,String password){ 
     int i =0; 
    try { 
     StringEntity entity = new StringEntity(parameters.toString()); 
     entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
     client.setBasicAuth(email,password); 
     client.post(context, "http://10.0.2.2:8080/webapi/add", entity, "application/json", 
       new AsyncHttpResponseHandler() { 


        @Override 
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
         try { 
          JSONObject json = new JSONObject(
            new String(responseBody)); 
          i=statusCode; 
         } catch (JSONException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 

        } 

        @Override 
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 

        } 
       }); 


    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
return i; 
} 

もちろん私はいつもi=0を取得します。それはAsyncのメソッド 私はメソッドをvoidを送信し、onSuccessの中でコールバックを作ろうとしましたが、それはアクティビティ(それは私が後で尋ねるもう一つの質問です)に多くの問題を引き起こします あなたは値を取得する方法がありますか?私はstatusCodeとして? ありがとうございます。

答えて

2

私は無効であることの方法が良い方法がvoid送信させるとするonSuccess

の内側にコールバックを作ってみました。

するonSuccess内部のコールバックはこの

のように見えることができます作る

public interface Callback<T> { 
    void onResponse(T response); 
} 

が、それをパラメータとして使用し、onSuccessの内側に、そして、メソッドボイド

public void send(
    JSONObject parameters, 
    String email, 
    String password, 
    final Callback<Integer> callback) // Add this 

を行い、コールバックインターフェイスを追加します。メソッドを実行すると結果が得られます

if (callback != null) { 
    callback.onResponse(statusCode); 
} 
0素敵な高速の偉大な答えの男だあなたは sendを呼び出し、そのメソッド、外

、匿名のコールバッククラスを作成

webServer.send(json, "email", "password", new Callback<Integer>() { 
    public void onResponse(Integer response) { 
     // do something 
    } 
}); 
+0

あなた –

+0

ようこそに感謝。あなたがなぜレスポンスコードを返すのかは分かりません。あなたはJSONObjectを返すべきですか? –

+0

はい私はそれが単なる例であったことを知っています:) –

関連する問題