我正在开发一个能够在WordPress网站上注册用户的Android应用程序,并通过使用WordPress上安装的JSON API Auth和JSON API User插件发送http请求“GET Method”来更新他们的user_meta_vars。 / p>
问题是要注册我必须的用户:
1-发出获取nonce id的请求:“DomainName / api / get_nonce /?controller = user& method = register”这将返回带有nonce id的json。
2-另一个注册用户的请求:“DomainName / api / user / register /?username = john& email=john@domain.com& nonce = TheIdFromPreviousRequest& display_name = John”。
直到现在用户已注册。
现在我要更新他的user_meta_vars
3-使用来自注册http请求的cookie更新用户元的请求:“DomainName / api / user / update_user_meta_vars /?cookie = COOKIE-HERE& website = user-website.com& city = Chicago& country = USA& amp ;技能= PHP中,CSS,JS,网“
现在,当您看到每个请求都依赖于前一个请求中的值时,我这样做的方式是制作3个AsyncTasks,第一个将发出请求,当它获得响应时,另一个将从响应中的数据开始
我使用的AsyncTask来自HERE:
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是我添加的自定义字段,在请求注册时无法填充数据。
谢谢大家