Ich habe eine Android-Anwendung mit mehreren REST Api's. Die APIs werden mithilfe der Volley-Bibliothek verwaltet. Die Antwort bekommt und es ist gut. Aber wenn ich asynchrone Anfragen mache, kann ich die Antwort jeder Anfrage nicht identifizieren.Wie setze ich Tag auf die Anfrage und bekomme es von Response Volley asynchrone Anfrage?
ist mein Wunsch Methode dies:
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();
}
}
Gibt es eine Möglichkeit, einen Tag auf die Anforderung zu setzen und dies auch von der Antwort zu bekommen ?. Damit kann ich die aktuelle Anfrage und Antwort identifizieren. Ich weiß nicht, dass das eine doppelte Frage ist, aber ich habe keine richtige Erklärung dafür bekommen.
Meine Antwort Methode ist:
@Override
public void onResponse(Object response) {
if (response != null) {
// I want to trigger the request tag from here
mCallBack.onSuccessData(response);
}
}
Die Anfrage- und Antwortverfahren in derselben Klasse und der Klasse implementiert Response.Listener, Response.ErrorListener.
Ich bin nicht sicher, was Sie für Tags zu verwenden versuchen, aber Wo implementieren Sie die onResponse-Methode? –
Ich ändere meine Frage. Die Request- und Response-Methoden sind in derselben Klasse und ich möchte ein Tag/Schlüssel in der Anfrage setzen und dasselbe auf die Antwort auslösen. – Nithinjith
auslösen die gleichen Mittel ?? Tags in Volley werden verwendet, um das Anfrageobjekt zu verweisen. Die Anfrage wurde für die Antwortmethode bereits abgeschlossen. was machst du jetzt damit? –