android 自定义response,android-如何将标签设置为请求并从Response Vo...

这篇博客讨论了在Android应用中使用Volley库处理多个RESTApi请求时,如何在响应回调中识别特定请求的问题。作者指出,由于异步请求的响应难以匹配到对应的请求,因此提出了在请求时设置标签,并尝试从响应中获取该标签以进行匹配。代码示例展示了如何在请求和响应方法中使用标签,以便在`onResponse`方法中触发正确的请求标识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个带有多个REST Api的Android应用程序.使用Volley库管理API.响应越来越好了.但是当我发出异步请求时,我无法识别每个请求的响应.

我的请求方法是这样的:

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值