嘿,我编写了一个 golang 休息服务,它工作正常! 问题是我需要在我的 android 应用程序中使用该服务,所以我需要一个 JSONArray 或一个 JSONObject。
当我这样调用服务时我没有问题
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("RESPONSE: ",response);
}
但是当我尝试这样调用服务时
JsonArrayRequest req= new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
}
json转换失败
我真的不知道我的错在哪里.. 谢谢 约翰
最佳答案
您必须使用 Api 调用设置 header 检查此代码,这将有助于解决您的问题
public void makeJsonArrayRequest(Context context, String url, final String requestTag, final ServiceCallBack listener) {
final ProgressDialog pDialog = new ProgressDialog(context);
pDialog.setMessage("Loading...");
pDialog.show();
JsonArrayRequest jsonObjReq = new JsonArrayRequest(
url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
listener.onSuccess(requestTag, response.toString());
pDialog.hide();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
// hide the progress dialog
listener.onFailure(requestTag, error.getMessage());
pDialog.hide();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
};
AppController.getInstance().addToRequestQueue(jsonObjReq, requestTag);
}
关于android 无法将字符串转换为 jsonarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41754175/