相关疑难解决方法(0)

使用StringRequest的Volley在第一次之后不调用getParams来发送POST请求参数

我遇到的问题是我的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)

post android caching android-volley

7
推荐指数
1
解决办法
563
查看次数

Volley没有为我的自定义请求调用getParams?

请问,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)

android get android-volley

6
推荐指数
1
解决办法
9489
查看次数

标签 统计

android ×2

android-volley ×2

caching ×1

get ×1

post ×1