如何在android中使用volley从服务器获取json响应?

时间:2014-11-20 07:31:50

标签: android json android-volley

我有一个登录活动,它接收电子邮件和密码并以此格式返回一个令牌。

{
"token":"your_token_here"    
}

我已经实现了帖子请求,但它确实有效。在日志上我可以看到它。我的问题是如何将其作为json对象读取并将其保存到共享首选项中?如果登录不正确但我们还没有其他响应,但它们不是状态代码。 例如:

{
"non_field_errors":"credentials not provided"
}

如何获取这些回复,以便我可以在对话框中显示它们。

2 个答案:

答案 0 :(得分:1)

如果您正在使用POST

JSONObject obj = new JSONObject();
obj.put("key","value"); // Request parameters to be send with post request
RequestQueue.add(new JsonObjectRequest(
    Request.Method.POST,
    "url",
    obj , // the request body, which is a JsonObject otherwise null
    new Response.Listener<JSONObject>() {
      @Override public void onResponse(JSONObject response) {

String token = response.optString("token");
      }
    },
    new Response.ErrorListener() {
      @Override public void onErrorResponse(VolleyError error) {

// Handle error here
      }
    }
));

答案 1 :(得分:0)

使用volley的JsonObjectRequest

RequestQueue.add(new JsonObjectRequest(
    Request.Method.POST,
    "your url",
    null, // the request body, which is a JsonObject
    new Response.Listener<JSONObject>() {
      @Override public void onResponse(JSONObject response) {
          // ok, do your job
      }
    },
    new Response.ErrorListener() {
      @Override public void onErrorResponse(VolleyError error) {
          // fail, you may need to get the error response body if the server return http status code >= 400 when request fail
      }
    }
));