如何在凌空,Android中使用GET方法将参数发送到后端并获取响应消息?

时间:2018-08-20 15:12:10

标签: android get android-volley

我想向后端发送三个参数“ guestEmail”,“纬度”和“经度”,并从后端获取成功消息。

我尝试这样做:

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”按钮没有任何反应。

请帮助!

2 个答案:

答案 0 :(得分:0)

如果您要传递参数,而不是对GET使用POST方法,则只需在URL本身中传递值。

答案 1 :(得分:0)

如果要使用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,请给我们一个身体

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;
    }
}