使用WordPress 4.7使用Volley的Android JsonArrayRequest

时间:2016-12-28 09:52:32

标签: php android wordpress rest

我有一个Android应用程序,使用WordPress WP Rest API从WordPress网站读取博客内容 - 我的应用程序工作正常,我将WordPress升级到4.7版。

问题发生在JsonArrayRequest中 - 它返回null - 当我使用Advanced Rest Client进行测试时 - 我得到400:错误请求 - 我认为从我的Android App发送的请求有方法发布。当我在Advanced Rest Client方法中测试时,post给了我一个400:Bad Request和方法Get给了我200个带有所有数据的json字符串。

这是我的代码:

public void loadCategoriesData(){
    // Categories request to get list of featured categories
    String url = Constant.getURLBlogCategories();

    // Preparing volley's json object request
    JsonArrayRequest jsonArrReq = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {

        @Override
        public void onResponse(JSONArray response) {
enter code here
            Log.d(TAG, response.toString());
            List<Category> categories = new ArrayList<Category>();

            for (int i = 0; i < response.length(); i++) {
                try {
                    JSONObject catObj = (JSONObject) response.get(i);
                    // category id
                    String catID = catObj.getString(TAG_TERM_ID);

                    // category name
                    String catTitle = catObj.getString(TAG_TERM_NAME);

                    Category category = new Category();
                    category.setId(catID);
                    category.setTitle(catTitle);

                    // add category to list
                    categories.add(category);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
            // Store categories in shared pref
            AppController.getInstance().getPrefManger().storeCategories(categories);

            // String the main activity
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
            // closing splash activity
            finish();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "System Error: " + error.getMessage());
            // show error toast
            Toast.makeText(getApplicationContext(), "System Error: " + error.getMessage(), Toast.LENGTH_LONG).show();
            // closing splash activity
            finish();
        }
    }) {

我更改了jsonrequest的行以添加方法GET

    JsonArrayRequest jsonArrReq = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {

它仍然无效,结果相同。有没有人有这方面的经验,我检查用于从我的Android应用程序发送请求的请求方法是什么?

以下是用于请求的网址 -     https://torbjornzetterlund.com/wp-json/wp/v2/categories?per_page=10

我使用以下代码构建网址

public static String getURLBlogCategories(){
    Uri.Builder builder = new Uri.Builder();
    String URL;
    builder.scheme("https").authority(IP_ADDRESS)
            .appendPath("wp-json")
            .appendPath("wp")
            .appendPath("v2")
            .appendPath("categories")
            .appendQueryParameter("per_page", String.valueOf(Per_Page));
    URL = builder.build().toString();
    Log.e("URL", URL);
    return URL;
}

感谢

0 个答案:

没有答案