2017-05-26 57 views
0

我试图实现单个函数,可以用来为不同的URL请求执行服务器调用。为此,我需要为不同的URL发送不同的参数。getparams中的开关大小写排序

我这样做,它显示“无效请求”。 任何人都可以告诉我如何做到这一点。

@Override 
     public Map<String, String> getParams() 
     { 
      Map<String, String> params = new HashMap<>(); 
      switch (URL) 
      { 
       case "REFERRALS_LIST": 
        params.put("customer_id", data.GetData(SharedDataHandler.CUSTOMER_ID)); 
        params.put("first_name", argslist.get(0)); 
        params.put("last_name", argslist.get(1)); 
        params.put("address", argslist.get(2)); 
        params.put("mobile", argslist.get(3)); 
        params.put("email", argslist.get(4)); 
        params.put("contact_home", argslist.get(5)); 
        Log.d("test", "getParams: "+argslist.get(0)+argslist.get(1)+argslist.get(2)+argslist.get(3)+argslist.get(4)+argslist.get(5)); 
        break; 
      } 
      return params; 
     } 
+1

它显示“无效请求”什么是它?什么显示? –

+0

Volley正在产生错误,说“无效的请求”。是否可以在那里放置一个开关? –

+1

你想在哪个URL上发出请求?例如:http:// ........?如果你的网址是“REFERRALS_LIST”,你想打这样的资源,那么它是如何发生的? – Abhishek

回答

0

您好试试这个,如果有帮助

1)performVolleyRequest是使凌空要求
2)方法我保持开关罩用于处理各种请求

3)您必须根据您的要求使用requestType变量,因为我将它留为空白我不知道何时需要它

public class MainActivity extends AppCompatActivity { 



    public static final String KEY_USERNAME = "username"; 
    public static final String KEY_PASSWORD = "password"; 
    public static final String KEY_EMAIL = "email"; 
    String requestType=""; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     switch (requestType){ 
      case "Registration": 
       Map<String, String> dynamicParams = new HashMap<String, String>(); 
       dynamicParams.put(KEY_USERNAME, "userName"); 
       dynamicParams.put(KEY_PASSWORD, "password"); 
       dynamicParams.put(KEY_EMAIL, "email"); 
       final String REGISTER_URL_REG = "http://foo.com/volleyRegister.php"; 
       performVolleyRequest(dynamicParams,REGISTER_URL_REG); 
       break; 
      case "Login": 
       Map<String, String> dynamicParamsLogin = new HashMap<String, String>(); 
       dynamicParamsLogin.put(KEY_USERNAME, "userName"); 
       dynamicParamsLogin.put(KEY_PASSWORD, "password"); 
       final String REGISTER_URL_LOGIN = "http://foo.com/volleyLogin.php"; 
       performVolleyRequest(dynamicParamsLogin,REGISTER_URL_LOGIN); 
       break; 
     } 

    } 



    private void performVolleyRequest(final Map<String, String> paramDynamic,final String REGISTER_URL) { 
     StringRequest stringRequest = new StringRequest(DownloadManager.Request.Method.POST, REGISTER_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Toast.makeText(MainActivity.this, response, Toast.LENGTH_LONG).show(); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show(); 
        } 
       }) { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params=paramDynamic; 
       return params; 
      } 

     }; 

     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 
} 
+0

啊非常聪明谢谢 –

+0

接受我的回答,如果它帮助兄弟 –

+0

@JoshanTandukar你必须在我的答案点击勾号接受它.. :) –