私は複数のREST APIを備えたAndroidアプリケーションを持っています。 APIは、Volleyライブラリを使用して管理されます。応答が得て、それはうまく動作します。しかし、私が非同期要求を行うとき、私は各要求の応答を特定できません。リクエストにタグを設定してResponse Volleyの非同期リクエストから取得する方法は?
は、私のリクエストメソッドはこれです:
private void httpCall(String URL, String json, String session key, int type) {
try {
SSLContext sslcontext = SSLContext.getInstance("TLSv1");
sslcontext.init(null,
null,
null);
SSLSocketFactory NoSSLv3Factory = new NoSSLv3SocketFactory(sslcontext.getSocketFactory());
HttpsURLConnection.setDefaultSSLSocketFactory(NoSSLv3Factory);
Log.i(REQUEST_TAG, "httpCall=url" + url + "::type" + type);
Log.i(REQUEST_TAG, "httpCall=json" + json);
} catch (Exception e) {
e.printStackTrace();
}
if (mContext != null)
mQueue = CustomVolleyRequestQueue.getInstance(mContext).getRequestQueue();
else
mQueue = CustomVolleyRequestQueue.getInstance(mActivity).getRequestQueue();
JSONObject mJSONObject;
final CustomJSONObjectRequest jsonRequest;
try {
if ((json != null) && (json.trim().length() > 0)) {
mJSONObject = new JSONObject(json);
} else {
mJSONObject = new JSONObject();
}
jsonRequest = new CustomJSONObjectRequest(sessionkey, type, url, mJSONObject, this, this);
// Wait 20 seconds and don't retry more than once
jsonRequest.setRetryPolicy(new DefaultRetryPolicy(
(int) TimeUnit.SECONDS.toMillis(20),
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
jsonRequest.setTag(REQUEST_TAG);
mQueue.add(jsonRequest);
} catch (JSONException e) {
e.printStackTrace();
}
}
は、リクエストにタグを設定し、応答から同じを取得するための任意のオプションがあります?。私が現在の要求と応答を特定できるように。これは重複した質問ではありませんが、私はこれについて適切な説明を得ていませんでした。
私の回答方法は次のとおりです。
@Override
public void onResponse(Object response) {
if (response != null) {
// I want to trigger the request tag from here
mCallBack.onSuccessData(response);
}
}
要求と応答の方法は、同じクラスとResponse.Listener、Response.ErrorListener実装クラスです。
ように私はあなたがタグを使用しようとしているかわからないんだけど、、Response.Listenerインタフェースを実装するクラスで
リスナーインタフェースで定義されていますどこでonResponseメソッドを実装しますか? –
私の質問を変更します。リクエストとレスポンスのメソッドが同じクラスにあり、リクエストでタグ/キーを設定し、レスポンスで同じものをトリガーしたいと思います。 – Nithinjith
同じ手段をトリガー?ボレーのタグはリクエストオブジェクトを参照するために使用されます。要求はすでに応答メソッドで完了しています。あなたは今それで何をしますか? –