【问题标题】:Volley Parse Error Android凌空解析错误 Android
【发布时间】:2017-07-18 10:18:32
【问题描述】:

使用 volley 库处理服务调用。它适用于 jsonObject、jsonArray 和 String 请求,但我的应用程序有一个服务不同的请求和响应。在此服务中,post 参数为 Jsonobject,返回响应为 String。

我正在尝试许多解决方案来处理响应。但没有人在工作。我是新的 android 应用程序开发人员。

发布参数和响应:

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,url, params, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(JSONObject response) {

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }

}) {
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        return getHeader();
    }
};

jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48, 2, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
VolleyRequest.volleyRequestInstance(mContext).addToRequestQueue(jsonObjectRequest);

【问题讨论】:

  • 你试过StringRequest吗?
  • 感谢 sripad 的回复。是的,尝试过 StringRequest 但返回服务器错误
  • 与您的解决方案类似的答案stackoverflow.com/a/31638943/4653447
  • 如果是服务器错误。然后在服务器端检查:)
  • 如果我检查邮递员工作正常

标签: android android-volley


【解决方案1】:

Volley Parse 错误会出现在不同的场景中

  1. 如果你调用post方法作为get,也get作为post
  2. 您已尝试传递不同的有效负载
  3. 返回值的类型与您预期的不同

在正常情况下使用自定义请求解决此问题示例:

https://developer.android.com/training/volley/request-custom

在您的代码中。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,url, params, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {

}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

}

}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {

     Map<String,String> myHeader=new HashMap<>();
     myHeader.put("Accept","text");
    return myHeader;
}
};

 jsonObjectRequest.setRetryPolicy(new 
 DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48, 
2,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
 VolleyRequest.volleyRequestInstance(mContext).addToRequestQueue
(jsonObjectRequest);

还需要您的“参数”值进一步说明

【讨论】:

    【解决方案2】:

    检查 URL 返回的响应问题可能不是代码,而是 URL 响应。 就我而言,Volley 无法解析我的响应,因为它不理解来自 URL 的响应。 希望这个答案能帮助某人好运:)

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多