Ассоциативный массив (Map< String, String >) в AsyncTask
Добавлено: 11 окт 2014, 20:35
Здравствуйте форумчане.
Помогите решить задачу.
У меня есть класс отправки POST запроса на сервер, который вызывается в AsyncTask
public class Post {
public static String getPost(String params) {
String res = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://site.ru/post.php");
try {
List pairs = new ArrayList();
pairs.add(new BasicNameValuePair("login", params)); // Вместо этого нужно получить из массива список переменных с параметрами.
httppost.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = httpclient.execute(httppost);
res = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
return "error";
}
return res;
}
}
Как мне передать в AsyncTask и далее в Post класс ассоциативный массив.
Массив создаю подобным образом
Map< String, String > postData = new HashMap< String, String >();
postData.put("login", login.getText().toString());
postData.put("password", password.getText().toString());
Не понятно что нужно указать в tt.execute(???);
И какой тип данных передать на вход в AsyncTask<String, String, String>
Со строками все работает идеально. Но как пытаюсь впихнуть массив, выдает кучу ошибок в разных местах.
PS Вообще задача стоит в том чтобы передавать в класс Post имя переменных и параметры, чтобы класс был универсальным. Может в JAVA есть другие пути решения этой проблемы.
Помогите решить задачу.
У меня есть класс отправки POST запроса на сервер, который вызывается в AsyncTask
public class Post {
public static String getPost(String params) {
String res = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://site.ru/post.php");
try {
List pairs = new ArrayList();
pairs.add(new BasicNameValuePair("login", params)); // Вместо этого нужно получить из массива список переменных с параметрами.
httppost.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = httpclient.execute(httppost);
res = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
return "error";
}
return res;
}
}
Как мне передать в AsyncTask и далее в Post класс ассоциативный массив.
Массив создаю подобным образом
Map< String, String > postData = new HashMap< String, String >();
postData.put("login", login.getText().toString());
postData.put("password", password.getText().toString());
Не понятно что нужно указать в tt.execute(???);
И какой тип данных передать на вход в AsyncTask<String, String, String>
Со строками все работает идеально. Но как пытаюсь впихнуть массив, выдает кучу ошибок в разных местах.
PS Вообще задача стоит в том чтобы передавать в класс Post имя переменных и параметры, чтобы класс был универсальным. Может в JAVA есть другие пути решения этой проблемы.