制作依赖于其响应的多个http-get请求的最佳方法

时间:2015-11-07 12:30:35

标签: php android json http-get wordpress-json-api

我正在开发一个能够在WordPress网站上注册用户的Android应用程序,并通过使用WordPress上安装的JSON API AuthJSON 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是我添加的自定义字段,在请求注册时无法填充数据。

谢谢大家

0 个答案:

没有答案