我有一个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;
}
感谢