如何在 volley 中使用 GET 方法向后端发送参数,并获取响应消息,android?

How to send parameters to backend, and get response message, using GET method in volley, android?

我想向后端发送三个参数"guestEmail"、"latitude"和"longitude",如果成功则从后端收到成功消息。

我试过这样做:

public void myGetFunc()
{

final String url = "....";

// prepare the Request
JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
    new Response.Listener<JSONObject>() 
    {
        @Override
        public void onResponse(JSONObject response) {   
                        // display response     
            Log.d("Response", response.toString());
Toast.makeText(getApplicationContext(), response.toString(), Toast.LENGTH_SHORT).show();
        }
    }, 
    new Response.ErrorListener() 
    {
         @Override
         public void onErrorResponse(VolleyError error) {            
            Log.d("Error.Response", response);
       }
    }
)

{

    @Override
    protected Map<String, String> getParams() 
    {  
            Map<String, String>  params = new HashMap<String, String> ();  
            params.put("guestEmail", "abc@xyz.com");  
            params.put("latitude", "12");
            params.put("longitude", "12");

            return params;  
    }
};

// add it to the RequestQueue   
queue.add(getRequest);
}

单击 'SOS' 按钮时将调用此方法。 但是现在,点击 'SOS' 按钮没有任何反应。

请帮忙!

如果你想传递参数而不需要使用 POST 方法,否则 GET ,只需传递 URL 本身的值。

如果您要使用 GET,请查询参数并自行构建字符串

private static final String URL = "http://www.test.com?value1={val1}&value2={val2}";

String requestString = URL;
requestString.replace("{val1}", "1");
requestString.replace("{val2}", "Bob");

StringRequest strreq = new StringRequest(Request.Method.GET,
     requestString,
      new Response.Listener<String>() {
         @Override
         public void onResponse(String Response) {
                  // get response
         }
      }, new Response.ErrorListener() {
         @Override
         public void onErrorResponse(VolleyError e) {
            e.printStackTrace();
         }
});
Volley.getInstance(this).addToRequestQueue(strreq);

如果您要使用 POST 我们 body

public class LoginRequest extends Request<String> {

    // ... other methods go here

    private Map<String, String> mParams;

    public LoginRequest(String param1, String param2, Listener<String> listener, ErrorListener errorListener) {
        super(Method.POST, "http://test.url", errorListener);
        mListener = listener;
        mParams = new HashMap<String, String>();
        mParams.put("paramOne", param1);
        mParams.put("paramTwo", param2);

    }

    @Override
    public Map<String, String> getParams() {
        return mParams;
    }
}