我遇到的问题是我的POST请求参数在第一次之后没有进入服务器.我知道Volley使用缓存机制进行响应,但在我的情况下,我的请求参数值可以在运行时更改,因为我正在使用分页Recyclerview.
所以我的问题是如何每次都发送Post请求参数而不会松散缓存机制volley.
我已经尝试使用下面的那些并完成我的事情(getParams()每次调用)..但它失去了缓存响应,我不希望这样.
requestQueue.getCache().clear();
stringRequest.setShouldCache(false);
也有搜索谷歌和以下链接,但无法找到任何适当的解决方案.以下是SO链接
以下是我的代码:
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("RES", response);
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("M/d/yy hh:mm a"); //Format of our JSON dates
Gson gson = gsonBuilder.create();
NewsFeedPOJO resultObj = (NewsFeedPOJO) gson.fromJson(response, (Class) NewsFeedPOJO.class);
inCurrPage = Integer.parseInt(resultObj.getPagination().getCurrent_page());
inTotalPage = Integer.parseInt(resultObj.getPagination().getTotal_pages());
inCurrPage++;
arrayList.addAll(resultObj.getNewsFeedList());
if (isFtym) {
isFtym = false;
layoutManager = new …Run Code Online (Sandbox Code Playgroud) 请问,Volley会自动将我的GET参数添加到URL吗?对我来说,它不是这样工作,也是在查看源代码时,我无法找到任何getParams方法的调用.那么我应该自己构建URL吗?这根本不是问题,我只是认为当有像getParams这样的方法时,它可以为我做到这一点:)
更新:以下是我的代码..
public class BundleRequest extends com.android.volley.Request<Bundle>{
private String token;
private OnAuthTokenValidatorResponseListener mListener;
private final Map<String, String> mParams = new HashMap<String, String>();;
public BundleRequest(int method, String url, Response.ErrorListener listener) {
super(method, url, listener);
}
public BundleRequest(int method, String url,OnAuthTokenValidatorResponseListener providedListener, Response.ErrorListener listener, String token) {
super(method, url, listener);
this.token = token;
mListener = providedListener;
mParams.put(AuthenticatorConfig.TOKEN_VALIDATION_PARAMNAME, token);
}
@Override
public Map<String, String> getParams() throws AuthFailureError {
return mParams;
}
@Override
protected Response<Bundle> parseNetworkResponse(NetworkResponse httpResponse) {
switch (httpResponse.statusCode) {
case AuthTokenValidator.TOKEN_VALID_RESPONSE_CODE:
//token …Run Code Online (Sandbox Code Playgroud)