【问题标题】:Android Volley post request not working on click?Android Volley 发布请求在点击时不起作用?
【发布时间】:2017-02-24 20:09:54
【问题描述】:

我正在创建一个应用程序,我可以在其中进行报告,并且在单击按钮时没有任何反应,即使没有响应,也没有显示吐司。这个凌空帖子我以前用过,它是正确的,我应该写的另一件事是我必须发送令牌以进行授权。 这是我的代码:

      //this is button click
      btnUpload.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                volley_send();


                }

        });
        
       //-----------------------------------------------------
       
       //this is volley post
       
 private void volley_send(){


        StringRequest stringRequest = new StringRequest(Request.Method.POST, "my_url",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        
                        // save_on_sharedPreference("email",email);
                      


                        if(!response.isEmpty()){
                            try {

                                JSONObject jsonObject = new JSONObject(response);
                                error = jsonObject.getBoolean("error");
                                String message = jsonObject.getString("message");

                                if(!error){

                                    //String token = jsonObject.getString("token");
                                    //JSONObject data = jsonObject.getJSONObject("data");



                                   

                                    Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show();

                                    Intent intent = new Intent(getApplicationContext(), Raport_Cat_NoPhoto.class);
                                    startActivity(intent);

                                }
                                else{
                                    Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show();
                                }



                                // JSONArray feedArray = response.getJSONArray("data");
                            } catch (JSONException e) {
                                e.printStackTrace();
                                System.out.println("JSONException :"+e.toString() );

                            }
                        }

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        if (error instanceof TimeoutError || error instanceof NoConnectionError) {
                            Toast.makeText(getApplicationContext(),getString(R.string.err_connection),Toast.LENGTH_SHORT).show();
                        } else if (error instanceof AuthFailureError) {
                            //TODO
                            //Toast.makeText(getApplicationContext(),"2",Toast.LENGTH_SHORT).show();
                            Toast.makeText(getApplicationContext(),getString(R.string.err_authentication),Toast.LENGTH_SHORT).show();
                        } else if (error instanceof ServerError) {
                            //TODO
                            //Toast.makeText(getApplicationContext(),"3",Toast.LENGTH_SHORT).show();
                            Toast.makeText(getApplicationContext(),getString(R.string.err_system),Toast.LENGTH_SHORT).show();
                        } else if (error instanceof NetworkError) {
                            //TODO
                            //Toast.makeText(getApplicationContext(),"4",Toast.LENGTH_SHORT).show();
                            Toast.makeText(getApplicationContext(),getString(R.string.err_network),Toast.LENGTH_SHORT).show();
                        } else if (error instanceof ParseError) {
                            //TODO
                            //Toast.makeText(getApplicationContext(),"5",Toast.LENGTH_SHORT).show();
                            Toast.makeText(getApplicationContext(),getString(R.string.err_processing),Toast.LENGTH_SHORT).show();
                        }

                    }
                }){


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Authorization","Bearer "+ApiKey);
                return headers;
            }

            @Override
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("category","cat_ankese");
                params.put("description",description.getText().toString());
                params.put("city",Qyteti);
                params.put("fshati",fshati.getText().toString());
                params.put("address",address.getText().toString());
                params.put("additional_information1",personidyshuar.getText().toString());
                params.put("name",emer.getText().toString());
                params.put("surname",mbiemer.getText().toString());
                params.put("telephone",telefon.getText().toString());
                params.put("email",email.getText().toString());
                params.put("info_latt",my_latitude);
                params.put("info_long",my_longitude);
                params.put("file[]",image123);
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
        requestQueue.add(stringRequest);
    }

不知道怎么回事……

【问题讨论】:

  • 你的 volley_send() 方法在哪里?请发布完整代码
  • 很抱歉,因为我用我的语言编辑了它,我忘记将 volley_dergo() 更改为 volley_send()
  • 你有没有在AndroidManifest.xml文件中添加上网权限?
  • 还有 url,你是在 url 上使用变量还是忘记将 url 更改为实际 url 并使用“my_url”?
  • 是的约瑟夫,我已经添加了互联网权限和 url 变量,出于保密目的我删除了它。我还有 3 个其他 volley 可以工作,一个是 post,它在不同的 activites 中发送两个变量和另外两个方法,它们可以获取数据并且它们工作正常。当我必须通过 volley post 发送报告时,它们不起作用。方法是一样的,唯一的变化是在这种情况下我必须在这篇文章中包含身份验证头

标签: android json post parameters android-volley


【解决方案1】:

似乎问题出在 Authorization 标头上,无论出于何种原因,它只需要一个参数。谢谢大家的回复!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    相关资源
    最近更新 更多