我已經試了一下從JsonArrayRequest抽射服務器發送POST一些例子,但它沒有工作,沒有在日誌中的錯誤..發送POST到服務器不工作
所以當我調用服務器後後不能得到我的數據時,不叫職位是表演,但現在當調用後,該數據未顯示
這個代碼
public void JSON_DATA_WEB_CALL() {
CustomJsonArrayRequest request = new CustomJsonArrayRequest (GET_JSON_DATA_HTTP_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSON_PARSE_DATA_AFTER_WEBCALL(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("name", "value");
return params;
}
};
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(request);
}
這個代碼爲新類
public class CustomJsonArrayRequest extends JsonRequest<JSONArray> {
public CustomJsonArrayRequest(String url, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) {
super(Method.POST, url, null, listener, errorListener);
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("name", "value");
return params;
}
@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString =
new String(response.data, HttpHeaderParser.parseCharset(response.headers));
return Response.success(new JSONArray(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
}
after webcall
public void JSON_PARSE_DATA_AFTER_WEBCALL(JSONArray array){
for(int i = 0; i<array.length(); i++) {
GetDataAdapterRiwayat GetDataAdapter2 = new GetDataAdapterRiwayat();
JSONObject json = null;
try {
json = array.getJSONObject(i);
GetDataAdapter2.setIdJalanRiwayat(json.getString(JSON_ID_JALAN));
GetDataAdapter2.setNamaJalanRiwayat(json.getString(JSON_NAMA_JALAN));
GetDataAdapter2.setLatitudeRiwayat(json.getString(JSON_LATITUDE));
GetDataAdapter2.setLongitudeRiwayat(json.getString(JSON_LONGITUDE));
GetDataAdapter2.setFotoSebelumRiwayat(json.getString(JSON_FOTO_SEBELUM));
GetDataAdapter2.setFotoSetelahRiwayat(json.getString(JSON_FOTO_SETELAH));
GetDataAdapter2.setIdRiwayat(json.getString(JSON_ID_RIWAYAT));
} catch (JSONException e) {
e.printStackTrace();
}
GetDataAdapter1.add(GetDataAdapter2);
}
recyclerViewadapterRiwayat = new RecyclerViewAdapterRiwayat(GetDataAdapter1, this);
recyclerView.setAdapter(recyclerViewadapterRiwayat);
}
當我調用'JSON_PARSE_DATA_AFTER_WEBCALL(response);'因爲你的代碼是jsonobject而不是jsonarray時'Response'錯誤 –
您需要修改JSON_PARSE_DATA_AFTER_WEBCALL(response);方法 –
你能分享你的JSON_PARSE_DATA_AFTER_WEBCALL(response);方法在這裏,所以我可以編輯它 –