Лучший способ сделать несколько запросов http-get, которые зависят от их ответа

Я занимаюсь разработкой приложения для Android, которое может регистрировать пользователей на веб-сайте WordPress и обновлять их user_meta_vars, отправляя http-запросы «Метод GET» с помощью JSON API Auth а также Пользователь JSON API плагины, установленные на WordPress.

Проблема в том, что для регистрации пользователя мне необходимо:

1- Сделайте запрос на получение одноразового номера: «Имя_домена / api / get_nonce /? Controller = user&method = register «это вернет json с одноразовым идентификатором.

2- Еще один запрос на регистрацию пользователя: «Имя_домена / API / user / register /? Username = john&[email protected]&Nonce = TheIdFromPreviousRequest&display_name = Джон».

До сих пор пользователь зарегистрирован.

Теперь я хочу обновить его user_meta_vars

3- Запрос на обновление мета пользователя с помощью файла cookie из запроса http регистрации: «Имя_домена / api / user / update_user_meta_vars /? Cookie = COOKIE-HERE&сайт = user-website.com&город = Чикаго&Страна = США&навыки = PHP, CSS, JS, веб»

Теперь, как вы видите, каждый запрос зависит от значений в предыдущем запросе, поэтому я делаю 3 асинхронных задачи, первый из которых выполняет запрос, а когда он получает ответ, другой начинает с данных из ответа.

AsyncTask, который я использую, это взято из ВОТ:

class RequestTask extends AsyncTask<String, String, String>{

@Override
protected String doInBackground(String... uri) {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
responseString = out.toString();
out.close();
} else{
//Closes the connection.
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
//TODO Handle problems..
} catch (IOException e) {
//TODO Handle problems..
}
return responseString;
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//Do anything with response..
}
}

Мой вопрос: каков наилучший способ сделать это, есть ли способ сделать это, используя php-файл, который будет обрабатывать все запросы, или есть какой-либо класс или функция в Android, чтобы сделать это правильно, или мой путь это единственное решение?

Примечание. Обновляемые user_meta_vars — это добавленные мной настраиваемые поля, которые нельзя заполнять данными при запросе регистрации.

Спасибо вам всем

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]