Я занимаюсь разработкой приложения для 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 — это добавленные мной настраиваемые поля, которые нельзя заполнять данными при запросе регистрации.
Спасибо вам всем
Задача ещё не решена.
Других решений пока нет …