Я пишу приложение, которое проверяет учетные данные для входа на внешний веб-сервер, поэтому у меня есть основная проблема создания экрана входа, который при отправке отправляет HTTP-запрос на сервер работает в фоновом режиме и не вызывает зависание пользовательского интерфейса - при предоставлении ProgressDialog пользователю.
Моя проблема заключается в том, что я хочу написать общий класс HTTP-запроса, расширяющий AsyncTask, поэтому, когда я вызываю . execute ()
Затем я передам параметры String, которые могут содержать что-то вроде 'post' , и когда вызывается doInBackground
, он увидит строку 'post' и затем перенаправит эти параметры на соответствующий вызов в моем классе. Псевдокод был бы чем-то вроде
public class HTTPOperations extends AsyncTask<String, Void, String>
{
doInBackground(String... string1,additionalParams)
{
if string1.equals "post"
response = httpPost(additionalParams)
return response;
}
httpPost(params)
{
// do http post request
}
}
Это все, что я мог придумать, кроме создания класса для каждого запроса HTTP Post / GET и т. Д., Который я хочу сделать, и расширения ASyncTask ...
Это приводит меня к моей следующей проблеме , если HTTP POST успешен и возвращает токен аутентификации, как мне получить доступ к этому токену?
Поскольку new httpOperations.execute () не возвращает строку из doInBackground, а возвращает значение типа
Извините, если это не имеет смысла, я вообще не могу этого понять. Пожалуйста, попросите разъяснений, если они вам нужны. Приветствуются шаблоны и идеи проектирования AsyncTask.