当前位置: 首页 > 知识库问答 >
问题:

Android volley多重请求。调试工作正常,运行应用程序工作错误

丰赞
2023-03-14

当尝试在没有用户参与情况下一个接一个地执行请求时,我遇到了一个问题。当运行应用程序时,我可以看到这个日志

Posting params: {email=xxxxx@gmail.com, tag=getConnectors}
    verifyOperation onResponse --> 1 operation
    verifyOperation onResponse --> {"result":"85","msg":"ok, user register, your password is your number phone!"}                                                                                              
  response 1 operation is ok call -->getConnectors
Posting params: {email=xxxxx@gmail.com, tag=geinfodates}
verifyOperation onResponse --> 2 operation
verifyOperation onResponse -->{"result":"85","msg":"ok, user register, your password is your number phone!"} 

但在调试app时,2操作的结果是正确的:

Posting params: {email=xxxxx@gmail.com, tag=geinfodates}
verifyOperation onResponse --> 2
verifyOperation onResponse -->{"token":"xxxxxxxx"}   

我有一个singlenton类,其中有不同类型的侦听器的StringRequest

 void verifyOperation(final HashMap paramOperation, final int opcion,final String url) {
            pref = new PrefManager(context);
            String urlFinale=url;
            StringRequest strReq = new StringRequest(Request.Method.POST,
                    urlFinale, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
 switch (opcion) {

                        case 1:
                           if (operation.result >= 0)
                           break;
                        case :2  .....

},new response.errorListener(){

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Error: " + error.getMessage());
            Toast.makeText(context,
                    error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            HashMap<String, String> profile = new HashMap<>();
            Set set = paramOperation.entrySet();
            Iterator iterator = set.iterator();
            //String number=pref.getMobileNumber();
            String mail = pref.getMail();
            switch (opcion) {
                case 1:
                    break;
                case 2:
                    profile = pref.getUserDetails();
                 break;
// Adding request to request queue
        MyApplication.getInstance().addToRequestQueue(strReq);



public <T> void addToRequestQueue(Request<T> req) {
            req.setTag(TAG);
            req.setRetryPolicy(new DefaultRetryPolicy(
                    MY_SOCKET_TIMEOUT_MS,
                    -1, //intentos
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            getRequestQueue().add(req);
        }

谢谢!

共有1个答案

弘烨烁
2023-03-14

我不明白因为有人给我投了反对票...

我解决了我的问题。也许能帮我解决一些人的问题。Volley有一个缓存当您向队列添加请求时,您可以禁用缓存https://developer.android.com/intl/es/training/Volley/simple.html。由于这个原因,当我调试时,我的应用程序工作良好,缓存应该被删除为Volley的时间(1-2秒的请求),当我运行我的应用程序时,缓存工作并总是返回第一个响应。您可以禁用缓存,这是一个禁用Volley缓存管理的示例

 类似资料:
  • 我在将工作cURL调用转换为内部API到python请求调用时遇到了一个问题。 以下是工作旋度调用: 然后,我试图将该调用转换为一个工作python请求脚本在这里: 我得到一个HTTP 401或500错误,这取决于我如何更改headers变量。我不明白的是,我的python请求与cURL请求有何不同。它们都作为同一用户从同一台服务器上运行。 任何帮助都将不胜感激

  • 问题内容: 我正在尝试使用Elastic Search引擎在mongodb数据库上进行全文搜索,但是遇到一个问题:无论我提供什么搜索字词(或者如果我使用query1或query2),引擎始终会返回相同的结果。我认为问题出在我提出请求的方式上,但我不知道如何解决。 这是代码: 问题答案: 该参数不适用于正在发送的数据。如果要尝试将数据发送到服务器,则应特别使用data参数。如果您尝试发送查询参数,则

  • 我使用的是spring-saml 1.0.1 RELEASE。我将属性support portUnsol的响应添加到我的SP扩展元数据并将值设置为false,但这并不能阻止未经请求的IDP响应。 检查src/main/java/org/springframework/security/saml/webso/websoprofileConsumerImpl中的代码后。java第130行我发现检查这个

  • 我有一个使用Python tkinter的小测试应用程序,我开始工作了。问题是,按下“退出”按钮时,它无法正确退出。这是一个两帧选项卡式应用程序,我从StackOverflow问题ttk tkinter multiple frames/Window开始。 它现在是一个可以工作的完整示例,但是需要工作,因为它没有正确退出。当我按下“退出”按钮时,它会杀死该选项卡的框架,但应用程序不会正确退出。我必须