我想在Java中构建一个通用的HttpPost函数,它将解析数组中的名称值对

时间:2014-11-17 17:15:19

标签: java arrays basicnamevaluepair

我有一个从Web服务读取JSON的功能:

public String readJSONFeed(String URL, String userName, String password){
...
    List<NameValuePair> params = new ArrayList<NameValuePair>(2);
    params.add(new BasicNameValuePair("userName", userName));
    params.add(new BasicNameValuePair("password", password));
...
}

我从AsyncTask中调用它:

EditText userName = (EditText)findViewById(R.id.txtUserName);
EditText password = (EditText)findViewById(R.id.passWord);

return readJSONFeed("http://service.com/service.php", userName.getText().toString(), password.getText().toString());

我的问题是如何使readJsonFeed成为通用的,并将数组解析为名称值对。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用String ... params然后使用params [0],params [1]等获取值。这会使事情变得复杂,因为您需要param的名称和值,但是总是可以在将params发送到方法时输入名称,这样的值,并确保params总是成对出现。

例如:

public String readJSONFeed(String ... params){

    if (params.lenght % 2 != 0) return null;

    List<NameValuePair> params = new ArrayList<NameValuePair>(params.lenght / 2);
    for (int i = 0; i < params.lenght - 1; i += 2) {
        params.add(new BasicNameValuePair(params[i], params[i + 1]));
}

//calling
readJSONFeed(name1, value1, name2, value2, name3, value3); etc